while(min<=max)
{
mid=(max+min)>>1;
//System.out.println("mid="+mid);
if(key>arr[mid])
min=mid+1;//楼主的排序是降序排列, 如果要找的比arr[mid]大, 则应该是凌max=mid吧
else if(key<arr[mid])
max=mid-1;// 同样, 要是key比arr[mid]小, 则需要改变的是min=mid
else
return mid;
}
或者 楼主把上面两个判断中,>改成< , <改成> 可以得到想要的结果.
用eclipse跑一下, 可以结果如下:
【1,31,65,74,98,100】
【100,98,74,65,31,1】
5
|