二更
插入排序—直接插入排序(Straight Insertion Sort)所谓插入排序,就是依次将新的排序数插入到一个已经排好顺序的有序序列最后再将整个有序序列输出程序设计思路:
从大到小为例,将第一个被输入的排序数看作是一个有序序列,之后新来入的排序数存入序列的最后,往前依次跟每个相邻元素比较,若新来的数值大,交换它们的值。
所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的。
范例
#include<stdio.h>
void sort()
{
int i=1,amount,m,k;
printf("需要排序的数字的总数:");
scanf("%d",&amount);
int sort[amount];
printf("输入排序数,请在键入每个数值后按空格键确认输入\n在这里输入您需要排序的数:");
scanf("%d",&sort[0]);
while(i<amount)
{
printf("\n");
scanf("%d",&sort);
for(k=i;k>=0;k--)
{
if (sort[k]<sort[k-1])//比较两个相邻元素
{
m=sort[k-1];
sort[k-1]=sort[k];
sort[k]=m;
}
else
break;
}
i++;
}
printf("您输入的所有数值,按从小到大的方式排序结果为:");
for(i=0;i<amount;i++)
{
printf("%d ",sort);
}
}
void main()
{
sort();
}
|