게임을 개발하다 보면 정수를 정렬해야 할 때가 있습니다.
예를 들어 Best Score 같이 높은 수 부터 차례대로 보여 줘야 할 때
정렬 해서 저장하는 것도 하나의 방법 이지만 불러 왔을 때 검수를 해야 할 때도 있습니다.
STL 라이브러리에 sort함수가 있어 이것을 이용해도 되지만 STL 사용 불가능 한 경우
(궁금하신 분들은 std::sort 검색 해보세요. ^^)
개인적으로 간단하게 정수 정도 오름/내림 차순으로 정렬을 해야 할 때는 아래 코드를 사용 합니다.
C / C++ Code
void insertion_sort(int *data, int size)
{
int i, j, temp;
for ( i = 1; i < size; ++i )
{
j = i;
temp = data[j];
/*
내림 차순 코드이며 오름 차순으로 할 경우
temp > data[j] 이 부분만 변경하시면 됩니다.
temp < data[j] 오름 차순 코드 입니다.
*/
while ( --j >= 0 && temp > data[j] ) {
data[j+1] = data[j];
}
data[j+1] = temp;
}
}
사용방법
int array[3] = { 1, 3, 2 };
insertion_sort( array, 3 );
결과
for( int i = 0; i < 3; ++i ) {
printf("result: %d \n", array[i]);
}
출력
result: 3
result: 2
result: 1
간단하게 사용하는 삽입 정렬에 대해서 공유 해봤습니다.
'- C , C++' 카테고리의 다른 글
[ C, C++] 소수점 이하 올림과 내림 함수 (0) | 2016.10.01 |
---|---|
[ C, C++ ] x의 n승 구하기 (0) | 2016.09.30 |
[ C / C++ ] for문에서 i++ 와 ++i 의 차이 (3) | 2015.08.28 |
[ C / C++ ] 간단한 중복 없는 정수 Random 함수 (0) | 2015.08.28 |