2023.02.16 최초작성
#include <stdio.h>
void main() {
int arr[10] = { 4,19,31,7,21,35,37,22,2,5 };
int size = sizeof(arr) / sizeof(int);
int key;
puts("정렬 전 --------");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
for (int i = 1; i < size; i++) {
key = arr[i];
printf("i : %d, key : %d\n", i, key);
for (int j = i - 1; j >= 0; j--) {
printf("key < arr[%d]:%d비교 -- ", j, arr[j]);
if (key < arr[j]) {
arr[j + 1] = arr[j];
if (j == 0) arr[j] = key;
}
else {
arr[j + 1] = key;
printf("arr[%d] 번지에 key: %d 대입\n", j + 1, key);
break;
}
for (int k = 0; k < size; k++) {
printf("%d ", arr[k]);
}
printf("\n");
}
printf("\n%d번째 싸이클 후 결과 : ", i);
for (int k = 0; k < size; k++) {
printf("%d ", arr[k]);
}
printf("\n\n");
}
puts("정렬 후 --------");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
}
[실행 결과]
정렬 전 --------
4 19 31 7 21 35 37 22 2 5
i : 1, key : 19
key < arr[0]:4비교 -- arr[1] 번지에 key: 19 대입
1번째 싸이클 후 결과 : 4 19 31 7 21 35 37 22 2 5
i : 2, key : 31
key < arr[1]:19비교 -- arr[2] 번지에 key: 31 대입
2번째 싸이클 후 결과 : 4 19 31 7 21 35 37 22 2 5
i : 3, key : 7
key < arr[2]:31비교 -- 4 19 31 31 21 35 37 22 2 5
key < arr[1]:19비교 -- 4 19 19 31 21 35 37 22 2 5
key < arr[0]:4비교 -- arr[1] 번지에 key: 7 대입
3번째 싸이클 후 결과 : 4 7 19 31 21 35 37 22 2 5
i : 4, key : 21
key < arr[3]:31비교 -- 4 7 19 31 31 35 37 22 2 5
key < arr[2]:19비교 -- arr[3] 번지에 key: 21 대입
4번째 싸이클 후 결과 : 4 7 19 21 31 35 37 22 2 5
i : 5, key : 35
key < arr[4]:31비교 -- arr[5] 번지에 key: 35 대입
5번째 싸이클 후 결과 : 4 7 19 21 31 35 37 22 2 5
i : 6, key : 37
key < arr[5]:35비교 -- arr[6] 번지에 key: 37 대입
6번째 싸이클 후 결과 : 4 7 19 21 31 35 37 22 2 5
i : 7, key : 22
key < arr[6]:37비교 -- 4 7 19 21 31 35 37 37 2 5
key < arr[5]:35비교 -- 4 7 19 21 31 35 35 37 2 5
key < arr[4]:31비교 -- 4 7 19 21 31 31 35 37 2 5
key < arr[3]:21비교 -- arr[4] 번지에 key: 22 대입
7번째 싸이클 후 결과 : 4 7 19 21 22 31 35 37 2 5
i : 8, key : 2
key < arr[7]:37비교 -- 4 7 19 21 22 31 35 37 37 5
key < arr[6]:35비교 -- 4 7 19 21 22 31 35 35 37 5
key < arr[5]:31비교 -- 4 7 19 21 22 31 31 35 37 5
key < arr[4]:22비교 -- 4 7 19 21 22 22 31 35 37 5
key < arr[3]:21비교 -- 4 7 19 21 21 22 31 35 37 5
key < arr[2]:19비교 -- 4 7 19 19 21 22 31 35 37 5
key < arr[1]:7비교 -- 4 7 7 19 21 22 31 35 37 5
key < arr[0]:4비교 -- 2 4 7 19 21 22 31 35 37 5
8번째 싸이클 후 결과 : 2 4 7 19 21 22 31 35 37 5
i : 9, key : 5
key < arr[8]:37비교 -- 2 4 7 19 21 22 31 35 37 37
key < arr[7]:35비교 -- 2 4 7 19 21 22 31 35 35 37
key < arr[6]:31비교 -- 2 4 7 19 21 22 31 31 35 37
key < arr[5]:22비교 -- 2 4 7 19 21 22 22 31 35 37
key < arr[4]:21비교 -- 2 4 7 19 21 21 22 31 35 37
key < arr[3]:19비교 -- 2 4 7 19 19 21 22 31 35 37
key < arr[2]:7비교 -- 2 4 7 7 19 21 22 31 35 37
key < arr[1]:4비교 -- arr[2] 번지에 key: 5 대입
9번째 싸이클 후 결과 : 2 4 5 7 19 21 22 31 35 37
정렬 후 --------
2 4 5 7 19 21 22 31 35 37
'프로그래밍 > C' 카테고리의 다른 글
선택 정렬 C언어 코드 (0) | 2023.02.16 |
---|---|
병합 정렬 C언어 코드 (0) | 2023.02.16 |
배열과 포인터 (0) | 2023.02.15 |
C언어 동적할당 malloc, calloc, realloc, free (0) | 2023.01.20 |
C언어 구조체 포인터 (0) | 2023.01.19 |