INSERTION-SORT(A)
1 for j = 1 to A.length
2 key = A[j]
3 //Insert A[j] into the sorted sequence A[1..j-1]
4 i = j - 1
5 while i >= 0 and A[i] < key
6 A[i+1] = A[i]
7 i = i - 1
8 A[i+1] = key
代码实现
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int A[] = {5,2,4,6,1,3};
int n = sizeof(A)/sizeof(A[0]);
int i = 0;
int j = 0;
int key = 0;
printf("The array Length=%d\n",n);
printf("Before sortting: ");
for(i=0;i<n;i++)
printf("%d ", A[i]);
printf("\n");
for(j=1;j<n;j++)
{
key = A[j];
i = j -1;
while(i>=0 && A[i] < key)
{
A[i+1] = A[i];
i = i - 1;
}
A[i+1] = key;
}
printf("After sortting : ");
for(i=0;i<n;i++)
printf("%d ", A[i]);
printf("\n");
return 0;
}
执行结果
root@ubuntu:/home/test# ./a.out
The array Length=6
Before sortting: 5 2 4 6 1 3
After sortting : 6 5 4 3 2 1