반응형
C언어로 구현한 삽입 정렬의 예제입니다.
25, 24, 46, 61, 13, 3 - 이와 같은 데이터가 배열에 기억되어 있다면, 2 번째 데이터부터 앞 쪽으로 진행하면서 삽입될 위치를 찾아서 해당 위치에 삽입하는 방식으로 정렬합니다.
#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;
}
반응형
'C_C++' 카테고리의 다른 글
산술평균 기하평균 조화평균을 구하는 C언어 코드 (0) | 2023.05.02 |
---|---|
(C언어) 친화수 판별하는 프로그램 (0) | 2023.05.01 |
(C언어) 피타고라스 정리: 직각삼각형의 세 변의 길이 구하기 (0) | 2023.04.26 |
(C언어) 이차방정식의 해: 실근 중근 허근 (0) | 2023.04.24 |
(C언어) 2차원 배열을 시계방향으로 90도 회전시키기 (0) | 2023.04.22 |