点上面的文字,有个视频,很好的解释了插入排序的原理
直接插入排序是稳定的。算法时间复杂度是O(n ^2) 。
#include <stdio.h>
void insert_sort(int * a,int len)
{
int i,j,temp;
for(i=1;i<len;i++){
j=i-1;
temp=a[i];
while (j>=0&&a[j]>temp) {
a[j+1]=a[j];
j--;
}
a[j+1]=temp;
}
}
int main(int argc, const char * argv[]) {
int a[8]={3,2,4,1,6,8,5,7};
int i;
insert_sort(a, 8);
for (i=0; i<8; i++) {
printf("%d ",*(a+i));
}
return 0;
}