C_C++

(C언어) 삽입 정렬 insertion sort

고니자니 2023. 4. 29. 09:39
반응형

C언어로 구현한 삽입 정렬의 예제입니다.

 25, 24, 46, 61, 13, 3 - 이와 같은 데이터가 배열에 기억되어 있다면, 2 번째 데이터부터 앞 쪽으로 진행하면서 삽입될 위치를 찾아서 해당 위치에 삽입하는 방식으로 정렬합니다.

삽입정렬 insertion sort

#include <stdio.h>

// 삽입 정렬
void insertion_sort(int arr[], int size) 
{
    int i, j, temp;

    for (i = 1; i < size; i++) {
        temp = arr[i];
        j = i - 1;

        while (j >= 0 && arr[j] > temp) {
            arr[j + 1] = arr[j];
            j--;
        }

        arr[j + 1] = temp;
    }
}

void print(int arr[], int size)
{
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() 
{
    int arr[] = { 25, 24, 46, 61, 13, 3 };
    
    // 배열 크기 계산
    int size = sizeof(arr) / sizeof(arr[0]);

    print(arr, size);  // 정렬 전 데이터 출력

    insertion_sort(arr, size);

    print(arr, size);  // 정렬 후 데이터 출력

    return 0;
}

삽입 정렬

반응형