A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 程立彬 于 2011-11-24 08:34 编辑

下标不是应该是 >= 0吗???我的意思是如果没找到,不是要返回那个元素应该插入的位置吗?
比如
有序序列 1 4 6 8
查找 3 没找到,那不是应该返回1吗,就是返回它应该插入的位置。但是我看视频上面、返回的是 负数 ,如果位置是1,那就返回 -1-1 不知为什么?

5 个回复

倒序浏览
不是没找到么...怎么可能返回正常的数呢 那要是找到了怎么办
回复 使用道具 举报
清秋 黑马帝 2011-11-22 23:03:35
藤椅
返回个负数。只是代表没找到该数而已。
回复 使用道具 举报
冯敏 黑马帝 2011-11-22 23:57:38
板凳
二分查找是在有序表中高速查找的算法:
    如果查找成功,则返回其所在下标,如果没有找到则返回-1
回复 使用道具 举报
同学你理解错了,正如你举的例子,找3没有,如果返回1的话,就说明找的是1号位置对应的4,而就不是你找的3了.
二分法,是查找中一种高效的查找方式,比普通的查找效率高,二分法查找查找的是数组元素所在的角标也就是arr[i]中i 的值,
数组元素的角标是从0开始到arr.length-1结束的有序数字,所以只有返回数组角标中没有的数字才能反映没有找到,所以返回-1,当然你随便返回一个负数也是可以的.
回复 使用道具 举报
负数就是代表你没有找到你所要查找的数据,这个可以说是一个规则吧,记住它。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马