插入排序法对于少量的元素排序,他是一个有效的算法 。首先,我们先找到一个数A[i],用一个key保存这个数,我们用这个A[i]与前面的i-1个数比较(前面的数应当是排好序的)。为了找到一个正确的位置,我们从右到左将它与前面的数比较,然后插入正确的位置。他的时间复杂度为
(插入排序的排序过程)
#include#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("%dtn",test[i]); return 0; }
C语言代码



