逻辑错了,要么就是你写错了,反正这么写绝不是折半查。
唉唉,给你改了下
if (k == a[mid])
return mid;
else if (k < a[mid])
low = mid;
else
high = mid;
毕竟你这是自己写的代码,不像有些人,上来就牛逼哄哄的:(给我写个代码,要求如何如何)
如果是升序排列的数组 可以像你原来那么写
但是你的数组是降序的,所以需要修改一下
if(k==a[mid])
return mid;
else if(k>a[mid])
high=mid-1;
else
low=mid+1;