本文最后更新于 1248 天前,其中的信息可能已经有所发展或是发生改变。
概念:插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序,其插入位置的确定方法是将待插入的记录与有序区中的各记录自右向左依次比较其关键字值的大小。本实例要求使用直接插入排序法将数字由小到大进行排序。
#include<stdio.h>
int main(){
int a[11] = {2, 3, 4, 5, 6, 7, 8, 9, 14, 15},t1,t2,i,j,end,number;
printf("请输入一个数字:");
scanf("%d",&number);
end=a[9]; //将目前最后个数字赋值给end
if(number>end){ //如果插入的数字大于 end 则就直接最后一个元素就是number
number=a[10];
}else{
for(i=0;i<11;i++){ //否则就进行比较
if(a[i]>number){ //如果数字中的元素大于num
t1=a[i]; //将a[i]的值赋值给t1
a[i]=number; //将number 赋值给a[i]
for(j=i+1;j<11;j++){ //在进行一轮比较直到大于前一个数字 小于后一个数字 然后将这个数字放在这两个数字中间
t2=a[j];
a[j]=t1;
t1=t2;
}
break;
}
}
}
for(i=0;i<11;i++){
printf("%5d",a[i]);
}
return 0;
}
运行第一种情况
直接大于最后一个数字 直接放在最后:
运行第二种情况:
插入到中间: