char a[10][5];//按字典序递增
int search(char *x)//二分查找,返回有序表中大于等于x的元素位置
{
int low=0,high=9,mid,t;
while(low<=high)
{
mid=(low+high)/2;
t=strcmp(a[mid],x);//比较中点位置与x
if(t==0) return mid;//相等返回其位置
else
if(t>0) high=mid-1;//x小于mid元素,则在中点前
else low=mid+1;
}
return high+1;//返回大于x的第一个元素
}
这个是我曾经用过的字符串的二分查找~
请根据需要修改数据类型。。。