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)