C语言之插入排序
2016-02-09 19:58
204 查看
插入法排序的要领就是每读入一个数立即插入到最终存放的数组中,每次插入都使得该数组有序。
![](http://img.blog.csdn.net/20160209195522595?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上代码:
运行结果:
随机产生一个数插入到已有的数组中,排序后输出:
上代码:
#include <stdio.h> #include <stdlib.h> #define n 10 int main() { int a ={-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 ; }
运行结果:
随机产生一个数插入到已有的数组中,排序后输出: