黑马程序员技术交流社区
标题:
二分查找返回值,如果没找到,返回的下标为什么是 负数?
[打印本页]
作者:
程立彬
时间:
2011-11-22 21:30
标题:
二分查找返回值,如果没找到,返回的下标为什么是 负数?
本帖最后由 程立彬 于 2011-11-24 08:34 编辑
下标不是应该是 >= 0吗???我的意思是如果没找到,不是要返回那个元素应该插入的位置吗?
比如
有序序列 1 4 6 8
查找 3 没找到,那不是应该返回1吗,就是返回它应该插入的位置。但是我看视频上面、返回的是 负数 ,如果位置是1,那就返回 -1-1 不知为什么?
作者:
梦女孩
时间:
2011-11-22 21:58
不是没找到么...怎么可能返回正常的数呢 那要是找到了怎么办
作者:
清秋
时间:
2011-11-22 23:03
返回个负数。只是代表没找到该数而已。
作者:
冯敏
时间:
2011-11-22 23:57
二分查找是在有序表中
高速查找
的算法:
如果查找成功,则返回其所在下标,如果没有找到则返回-1
作者:
张冬冬
时间:
2011-11-23 00:52
同学你理解错了,正如你举的例子,找3没有,如果返回1的话,就说明找的是1号位置对应的4,而就不是你找的3了.
二分法,是查找中一种高效的查找方式,比普通的查找效率高,二分法查找查找的是数组元素所在的角标也就是arr[i]中i 的值,
数组元素的角标是从0开始到arr.length-1结束的有序数字,所以只有返回数组角标中没有的数字才能反映没有找到,所以返回-1,当然你随便返回一个负数也是可以的.
作者:
moonlight
时间:
2011-11-23 08:18
负数就是代表你没有找到你所要查找的数据,这个可以说是一个规则吧,记住它。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2