#include <stdio.h>
/*
*binary insert sort algorithm
*author @ suilingxi
*2014-1-11
*/
int binary_insert_sort(int * array , int low , int high , int mdm){
while(low<=high){
if(mdm<*(array+(high+low)/2)){
high=(high+low)/2-1;
return binary_insert_sort(array,low,high,mdm);
}else{
low=(high+low)/2+1;
return binary_insert_sort(array,low,high,mdm);
}
}
return high;
}
int main(){
int count=10;
int array[10];
printf("please enter ten number:\n");
/* enter the sequence */
for(int m=0;m<count;m++){
scanf("%d",&array[m]);
}
/* sort the sequence */
for(int j=1;j<count;j++){
int low=0;
int high=j-1;
int mdm=array[j];
int position=binary_insert_sort(array,low,high,mdm);
for(int m=j;m>position+1;m--){
array[m]=array[m-1];
}
array[position+1]=mdm;
}
/* output the sequence */
for(int m=0;m<count;m++){
printf("%d ",array[m]);
}
return 0;
}
折半插入排序算法
最新推荐文章于 2020-06-27 21:16:16 发布