二分排序问题
#include<stdio.h> #include<math.h>
#define n 10
void sort(int m,int x[]);
void main()
{
int i,j;
int a[n];
printf("please input the items:\n");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
sort(n,a);
for(i=0;i<n;i++)
printf("%d\t",a[i]);
}
void sort(int m,int x[])
{ int high,low;
int i,j,k,l;
for(i=1;i<m;i++)
{
low=0;
high=i-1;
while(low<=high)
{
l=(low+high)/2;
if(x[i]<x[l])
high=l-1;
else
low=l+1;
}
for(j=i;j>low;--j)
{
x[j+1]=x[j];
}
x[low+1]=x[i];
}
}
请问我这二分插入有何不对啊 囧