#include<stdio.h>
#define N 10
int source[N] = {1,5,3,2,7,9,4,10,6,8};
int main()
{
int j;
for(j=1;j < N;j++)
{
int i = j - 1;
int key = source[j];
while(i >= 0 && source[i] > key)
{
source[i+1] = source[i];
i = i - 1;
}
source[i+1] = key;
}
for(j = 0; j < N;j++)
printf("%d ",source[j]);
printf("\n");
return 0;
}
源码如上,插入排序中,空间复杂度为 O(1)
最坏情况下的时间复杂度为 O(n^2)
最好情况下的时间复杂度为 O(n)
但我们关心的是平均时间复杂度,仍为 O(n^2)