最近在看c语言经典编程282例
插入排序是一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序
我觉得比较饶人的是输入10个数 数字是11位 输入的数是后10为 从1开始的
#include <stdio.h>
void main()
{
int a[11],i,j; //定义了11个数组的数字
printf("请输入10个数:\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]); //输入10个数字
for(i=1;i<11;i++) //将输出的数字以5个空格的方式输出
printf("%5d",a[i]);
printf("\n");
for(i=2;i<=10;i++) //开始插入排序 从2开始是因为输入的数字是从1开始到10的 第一个数没有数字和它比较 所以从2开始
{
a[0]=a[i]; //将设置哨兵
j=i-1; //确定要比较的元素的右边位置
while(a[0]<a[j])
{
a[j+1] = a[j]; //数据右移
j--;
}
a[j+1]=a[0]; //确定位置插入a[i]
}
for(i=1;i<11;i++) //输出排序好的数据
printf("%5d",a[i]);
printf("\n");
}