首页 > 试题广场 >

下面的方法为在升序排列的数组中进行二分查找的算法。

[填空题]

下面的方法为 升序 排列的数组中进行二分查找的算法。

static int binarySearch(int data[],int key)// 在升序排列的数组中进行二分查找

{
int left=0,right=data.length-1,mid;

while(left<=right) {

mid= 1 ;

if(key==data[mid])

return mid;

else if(key<data[mid])

2 ;

else if(key>data[mid])

3 ;

}
return -1;
}
这种填空题是真的瓜皮
发表于 2017-05-23 22:20:01 回复(0)
left + right 有可能超过Integer.MAX_VALUE
left + (right - right) / 2

发表于 2017-05-24 15:22:54 回复(1)
按平常编码习惯加了空格就判错了。我也很无奈。。。。。
发表于 2017-05-10 16:48:15 回复(0)
第一次填空题全对
发表于 2017-07-06 22:35:08 回复(0)
(left+right)/2
right = mid-1
left=mid+1
这是我的答案,跟正确答案对比了半天才发现是空格的原因,填空题设计的用户体验太不好了,很多时候并不能考核到底掌握没有
发表于 2017-07-04 19:52:53 回复(0)
不应该mid=left么
发表于 2017-06-28 22:49:13 回复(0)
left + (right - right) / 2 第一个空应该这样~然后
发表于 2017-05-27 14:46:46 回复(0)
 (left+right)/2 这个答案都不考虑加法溢出么?
发表于 2017-05-23 14:03:15 回复(0)
1.left+(right-left)/2
2.right = mid-1
3.left = mid+1
 
我这哪里错了,,,,明明就一样,而且第一个空如果按答案这样写容易发生越界
发表于 2017-05-19 16:13:10 回复(0)

明明正确,怎么都判错呢
发表于 2017-05-06 11:47:56 回复(2)