void insert_sort(int a[], int n)
{
int i, j;
int tmp;
for(i = 1; i < n; i++){ //默认第0个已经排好序 执行n-1趟
tmp = a[i];
for(j = i; j > 0; j--){
if(a[j-1] > tmp){ //向前过滤 找到j的位置
a[j] = a[j-1];
}
else
break;
}
a[j] = tmp;
}
}
//中间的for循环可以简化为
for(j = i; j > 0 && a[j-1] > tmp; j--)
a[j] = a[j-1];
a[j] = tmp;
和 冒泡排序一样 O(N^2)