c语言描述的二分插入排序法

#include<stdio.h>
#include<stdlib.h>
//二分插入排序法
void BinsertSort(int a[],int n){
int low,high,mid;
int i,j,temp;
for(i=;i<n;i++){
printf("%d ",a[i]);
}
for(i=;i<n;i++){
low=;
high=i-;
temp=a[i];
mid=(low+high)/;
while(low<=high){//利用二分法寻找应该插入的位置,其他同一般插入排序法
if(temp<=a[mid]){
high=mid-;
}else{
low=mid+;
}
}
for(j=i-;j>=high+;j--){//high+1也要yi走,让其闲置
a[j+]=a[j];
}
a[j]=temp;
}
for(i=;i<n;i++){
printf("%d ",a[i]);
}
}
void main(){
int a[]={,,,,,,,,,};
BinsertSort(a,);
上一篇:c语言:简单排序:冒泡排序法、选择排序法、插入排序法(待写)


下一篇:10 个十分难得的 javascript 开发经验