#includestdio.hvoidinsert_sort(intarray[],unsignedintn)//直接插入排序函数,实现从小到大排序。array是待排序的数组名称,n是数组的长度。{inti,j;inttemp;for(i=1;in;i++){temp=array[i];for(j=i;j0&&temparray[j-1];j--)//只有当j大于0,且,array[i]小于array[j-1]时,才进行内层for循环,交换array[j]和array[j-1]的值,且,{//继续进行下次比较。因为,array[i]左边是有序数列,所以,array[i]大于或者等于array[j-1]时,就不用进行array[j]=array[j-1];//此次内层for循环了,其实,这里并没有把array[i]放到合适的位置,只是预留了一个空位给array[i],直到把这个空位移动到}//合适的位置,就停止移动了。下面一句,array[j]=temp;才把array[i]放到空位中。array[j]=temp;//这里,其实,相当于array[j-1]=temp;因为,for循环结束后,j已经自减1了。}}voidmain(){intarr[10]={100,100,100,100,666,1,9,888,0,10};inti=0;insert_sort(arr,10);for(i=0;i10;i++)printf(%d,arr[i]);printf(\n);}