#include <stdio.h>
int insert_sort(int *a, int length)
{
int i=0, j, k, temp;
int sorted_num=1;
for(i=1; i<length; ++i)
{
for(j=0; j<sorted_num; ++j)
{
if(a[i]<a[j]) //判断是否需要将正在处理的数插入前面
{
temp = a[i]; //a[i]的位置会被后移数据时占用
k = sorted_num; //记录要移动的数据
while(k > j) //将大于a[i]的数整体后移一位,为a[i]插入前面腾出位置
{
a[k] = a[k-1];
--k;
}
a[j] = temp; //将a[i]插入正确的位置
break; //判断一个数据结束
}
}
++sorted_num;
}
}
int main()
{
int a[] = {1,4,6,3,2,344,2,45,67,9,12,0,0,3,2,11,8};
insert_sort(a, 17);
return 1;
}