# include <stdio.h>#define Max 7
void B_sort(int a[], int n)
{
int low,high, i,j, t;
int m;
for(i=2;i<=n;++i)
{
t = a[i];//临时存放
low =1;high =i-1;
while(low<=high)
{
m=(low+high)/2;
if(t<a[m])
high =m-1;
else
low =m+1;
}
for(j=i-1;j>=high+1;--j)
{
a[j+1] = a[j];
}
a[high+1] = t;
}}
main()
{int a[Max],i;
int length = Max-1;
printf(" 这是一个折半排序 \n");
printf("请输入%d个待排序的记录序列:\n",length-1);
for(i=1;i<length;i++)
scanf("%d",&a[i]);
B_sort(a,length);
printf("折半排序后的序列:");
for(i=2;i<=length;i++)
printf(" %d",a[i]);
printf("\n");
}
vc下面编译通过的,折半插入排序,希望采纳
温馨提示:答案为网友推荐,仅供参考