對於小規模輸入,插入排序是一種非常快速的排序算法,且原理簡單,結構緊湊。
插入排序的原理:從序列中第二個數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\n",a[i]); 30 } 31 32 }