排序方法:插入法排序

论坛 期权论坛 脚本     
匿名技术用户   2020-12-30 19:15   34   0

插入法排序:顾名思义就是把后面的数插入到前面已有的有序数列中在进行排序

举个列子: 把 7 3 6 9 1 从小到大进行插入法排序;

第一次:先将第一个数排好序,显然已经排好了 7 3 6 9 1

第二次:再把3插入,将其与7比较 显然:3 7 6 9 1

下一次:以此类推:将6, 9 ,1依次放入到已排好的序列中

3 6 7 9 1

3 6 7 9 1

1 3 6 7 9

#include<stdio.h>

int main()
{
int n,a[100];
int i,j,k;
while(scanf("%d",&n)!=EOF)
{
printf("please input %d numbers:\n",n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
{
for(j=i;j>=0;j--) //将后面的数一个一个插入,并与前面的数排序
{
if(a[j]<a[j-1])
{
k = a[j];
a[j] = a[j-1];
a[j-1] = k;
}
}
}
for(i=1;i<=n;i++)
printf("%d\t",a[i]);
printf("\n");
}

return 0;

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP