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)