对于小规模输入,插入排序是一种非常快速的排序算法,且原理简单,结构紧凑。
插入排序的原理:从序列中第二个数A开始,将A,插入前面已经排好的序列中,形成一个新的排序好的序列,以此类推到最后一个元素。
参考:http://jingyan.baidu.com/article/eae078278b3dd41fec5485bc.html
1 void insert_sort(int a[],int l) 2 { 3 int i,temp,p; 4 //从第2个元素开始 5 for (i = 1; i<l ; i++){ 6 temp = a[i];//将带插入元素拿出来 7 p = i-1; 8 while (p>=0 && temp<a[p]){ 9 //比较大的元素向后挪一位,腾出空间 10 a[p+1] = a[p]; 11 p--; 12 } 13 14 //插入 15 a[p+1] = temp; 16 } 17 18 } 19 20 int main() 21 { 22 int a[7] = {2,4,1,5,3,9,7}, 23 l = sizeof(a) / sizeof(int), 24 i; 25 26 insert_sort(a,l); 27 28 for (i = 0; i < l; ++i) { 29 printf("%d ",a[i]); 30 } 31 32 }