2 cpohui CPOHUI 于 2017.09.19 09:58 提问

二分查找mid的取值考虑,在线恭候,等待

二分查找法mid在什么情况下用(end-start)/2+start,即
mid=(end-start)/2+start,它与mid=(end+start)/2有什么区别
麻烦大神们告知一下,谢谢
在线恭候

4个回答

u011514451
u011514451   2017.09.19 11:55
已采纳

mid=(end-start)/2+start,与mid=(end+start)/2没有本质区别,只是写法有点不同而已,将(end-start)/2+start 按数学公式化简一下就是(end+start)/2

caozhy
caozhy   Ds   Rxr 2017.09.19 11:46

假设原始数据是升序的,如果找到的mid比要查找的数字小,那么下一个mid选取左边的一半,否则选右边的一半

qq_37074678
qq_37074678   2017.12.12 18:20

对于一个规模足够大的数组(极端假设为2147483647个元素),那么在对后半部(2/n~n)取mid时,使用mid = (end + start) / 2溢出(结果会得到一个负数)
此时你用arr[mid]则会报错。

CPOHUI
CPOHUI 谢谢你
大约一个月之前 回复
zhang_guyuan
zhang_guyuan   2017.09.19 14:25

你把第一个算式化简后和第二个有什么区别?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!