折半插入排序

来源:互联网 发布:淘宝网买彩票 编辑:程序博客网 时间:2024/05/29 19:34
/*2014年3月12日*****//*折半插入排序******/#include "stdio.h"#include"stdlib.h"#include"time.h"void BinaryInsetionSort();#define M  10int a[M],b,i,j;void main(){srand((int)time(NULL));printf("随机生成10个0-9的整数: \n");for(i=1;i<=M;i++){    a[i]=rand()/3276;        printf("%d,",a[i]);}printf("\n\n");printf("折半插入排序后: \n");BinaryInsetionSort();for(i=1;i<=M;i++)  printf("a[%d]=%d\n",i,a[i]);}void BinaryInsetionSort()//折半插入排序{int low,high,m;for(i=2;i<=M;i++){a[0]=a[i];low=1;high=i-1;while(low<=high){m=(low+high)/2;if(a[0]<a[m])high=m-1;else low=m+1;}for(j=i-1;j>=high+1;j--)a[j+1]=a[j];//记录后移    a[j+1]=a[0];//插入到正确位置}}
运行结果:
0 0