插入法排序的要领就是每读入一个数立即插入到最终存放的数组中,每次插入都使得该数组有序。
上代码:
#include <stdio.h> #include <stdlib.h> #define n 10 int main() { int a[n]={-1,3,6,9,13,22,27,32,49}; /*注意留一个空间给待插数*/ int x,j,k; x = rand()%100; printf("随机产生x的值为:%d\n",x); if(x>a[n-2]) { a[n-1]=x ; /*比最后一个数还大就往最后一个元素中存放*/ } else /*查找待插位置*/ { j=0; while( j<=n-2 && x>a[j]) { j++; } for(k=n-2; k>=j; k--) { /*从最后一个数开始直到待插位置上的数依次后移一位*/ a[k+1]=a[k]; } a[j]=x; /*插入待插数*/ } printf("输出:\n"); for(j=0;j<=n-1;j++) printf("%d ",a[j]); return 0 ; }
运行结果:
随机产生一个数插入到已有的数组中,排序后输出:
时间: 2024-10-12 12:47:45