//从第二个元素开始,跟第一个比较,如果比第一个小,那么将这个
//数用temp保存起来,这个数的下标为i,将j赋值为i-1,在i前面的数
//如果比下标为i的大的话,后移,因为这是i已经保存了(在temp中)
//所以不用担心丢失,这样到前面的不符合的为止,最后将temp存回去
#include<stdio.h>
void InsertSort(int k[],int n)
{
int i,j,temp;
for(i=1; i<n;i++)
{
if(k[i]<k[i-1])
{
temp = k[i];
for(j=i-1; k[j]>temp ;j--)
{
k[j+1] = k[j];
}
k[j+1] = temp;
}
}
}
int main()
{
int i,a[10] = {5,3,2,1,4,9,6,8,7,0};
InsertSort(a,10);
for(i=0; i<10;i++)
printf("%d",a[i]);
return 0;
}
直接插入排序
最新推荐文章于 2025-03-09 23:46:07 发布