삽입 정렬(Insertion Sort)
배열 인덱스 [1]번부터 자기 앞의 숫자와 값의 비교를 한다.
#include <stdio.h>
InsertionSort(int *InsertionObject, int length)
{
int i, j, temp;
for (i = 1; i < length; i++) //i=1번째 부터 시작
{
for (j = i; j >0; j--) //j를 j의 앞의 수들과 비교한다
{
if (InsertionObject[j - 1] > InsertionObject[j])
{
//SWAP
temp = InsertionObject[j - 1];
InsertionObject[j - 1] = InsertionObject[j];
InsertionObject[j] = temp;
}
}
//과정출력
for (int a = 0; a < length; a++)
{
printf("%d ", InsertionObject[a]);
}
printf("\n");
}
}
int main()
{
int InsertionObject[] = { 6, 3, 8, 12, 2, 9, 1, 27 };
int length = sizeof(InsertionObject) / sizeof(int);
InsertionSort(InsertionObject, length);
return 0;
}
728x90
'알고리즘' 카테고리의 다른 글
도전 프로그래밍2 - 3번문제 (0) | 2017.06.14 |
---|---|
도전 프로그래밍2 - 2번문제 (0) | 2017.06.14 |
[C] 선택 정렬(Selection Sort) (0) | 2017.04.22 |
[C] 이진 탐색 알고리즘의 재귀적 구현 (0) | 2017.04.19 |
[C] 피보나치 수열 (0) | 2017.04.19 |