#include<stdio.h>
void insort(int s[],int n) {
int i,j;
for(i=2; i<=n; i++) {
s[0]=s[i];/*第一步:设置监视哨*/
j=i-1;
while(s[j]>s[0]) { /*第二步:逐一与监视哨比较,如果大于监视哨则右移一位*/
s[j+1]=s[j];
j--;
}
s[j+1]=s[0];/*第三步:监视哨插入正确的位置*/
}
}
int main() {
int a[11],i,j;
printf("请输入十个数据:\n");
for(i=1; i<=10; i++) /*第一位空出来,留给监视哨*/
scanf("%d",&a[i]);
printf("原始数据:\n");
for(i=1; i<11; i++)
printf("%5d",a[i]);
insort(a,10);
printf("\n插入数据排序后顺序:\n");
for(i=1; i<11; i++)
printf("%5d",a[i]);
printf("\n");
scanf("%d",&j);
}
直接插入排序
最新推荐文章于 2024-07-09 19:36:25 发布