반응형

게임을 개발하다 보면 정수를 정렬해야 할 때가 있습니다.

예를 들어 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


간단하게 사용하는 삽입 정렬에 대해서 공유 해봤습니다.



반응형

+ Recent posts