[C언어 소스] 삽입 정렬(Insertion Sort) 알고리즘
//삽입 정렬(Insertion Sort)
#include <stdio.h>
#define SWAP(a,b) {int t; t = a; a=b; b=t;}//a와 b를 교환
void InsertionSort(int *base, int n);
int main(void)
{
int arr[10] = { 9,4,3,10,5,8,7,6,2,1 };
InsertionSort(arr, 10);
return 0;
}
void ViewArr(int *arr, int n);
void InsertionSort(int *base, int n)
{
int i, j;
ViewArr(base, n);//현재 상태 출력
for (i = 1; i<n; i++)//정렬할 범위를 확대해 나갑니다.
{
for (j = i; j>0; j--)
{
if (base[j - 1]>base[j])//앞쪽 원소가 더 크면
{
SWAP(base[j - 1], base[j]);//교환
ViewArr(base, n);//상태 출력
}
else
{
break;
}
}
}
}
void ViewArr(int *arr, int n)
{
int i = 0;
for (i = 0; i<n; i++)
{
printf("%2d ", arr[i]);
}
printf("\n");
}
'C언어 > C언어 예제' 카테고리의 다른 글
[C언어 소스] 퀵 정렬(Quick Sort) 알고리즘 (0) | 2016.04.13 |
---|---|
[C언어 소스] 쉘 정렬(Shell Sort) 알고리즘 (0) | 2016.04.13 |
[C언어 소스] 선택 정렬(Selection Sort) 알고리즘 (0) | 2016.04.13 |
[C언어 소스] 버블 정렬(Bubble Sort) 알고리즘 (0) | 2016.04.13 |
[C언어 소스] 순차 정렬(Sequential Sort) 알고리즘 (0) | 2016.04.13 |