/直接插入排序:对数组中未排好序的序列向排好序的序列进行插入,从排好序的序列最后一位向前找,直到找到比他小的元素插入到它后面
用一个暂时变量代表目标元素,每一个比它大的都往后移动一位
传入数组a[ ],大小 n/
#include <stdio.h>
void insert_sort(int a[],int n)
{
int i,j,temp;
for(i=1;i<n;++i)
{
temp=a[i];
for(j=i-1;j>=0;--j)
{
if(temp<a[j])
{
a[j+1]=a[j];
}
else break;
}
a[j+1]=temp;
}
}
int main()
{
int a[]={1,34,12,9,6,2,16,5,8,3};
int i,n=10;
insert_sort(a,n);
for(i=0;i<n;++i) printf("%d ",a[i]);
return 0;
}