排序算法之插入排序 (C語言)

void insertion_sort(int *p,int n)
{
   for (int i=1;i<n;i++)
       for (int j=0;j<i;j++)
       {
           if (p[j]>p[i])
           {
               int a = i;
               int b = j;
               int t;
               for (;a>b;a--)//插入元素
               {
                   t = p[a];
                   p[a] = p[a-1];
                   p[a-1] = t;
               }
           }
       }
}

通俗理解:就是拿一個新的元素與原數組(已經從小到大排好序))的最後一個比較,若比較的元素比自己大,就交換位置,繼續與數組前一個元素比較,直到遇到一個比它自己小的元素爲止。

插入排序時間複雜度爲: O(n2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章