插入排序法对于少量的元素排序,他是一个有效的算法 。首先,我们先找到一个数A[i],用一个key保存这个数,我们用这个A[i]与前面的i-1个数比较(前面的数应当是排好序的)。为了找到一个正确的位置,我们从右到左将它与前面的数比较,然后插入正确的位置。他的时间复杂度为
(插入排序的排序过程)
#include <stdio.h>
#define _for(i,a,b) for(int i=(a);i<=(b);i++)
void INSERTTION_SORT(int A[],int n)
{
int key,i;
_for(j,1,n-1)
{
key=A[j];
i=j-1;
while(i>0&&A[i]>key)
{
A[i+1]=A[i];
i--;
}
A[i+1]=key;
}
}
int main()
{
int test[10]={9,54,34,532,23,43,42,4342,24,23};
INSERTTION_SORT(test,10);
_for(i,1,9) printf("%d\t\n",test[i]);
return 0;
}
C语言代码