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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹俊 中级黑马   /  2012-7-10 10:12  /  1795 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曹俊 于 2012-7-10 22:02 编辑


4 个回复

倒序浏览
本帖最后由 朱东方 于 2012-7-10 10:27 编辑

39行:必须进行初始化。不给个初值你怎么用mid呢。
41行:mid=(min+max)>>1;这是为了循环用的。每进行一次whlie循环,mid的值都得变。
          第二种方法判断的就是mid的是是否等于key,mid值不变判断有用吗。。
回复 使用道具 举报
第二种写法中,在41行的循环中在比较了key和arr[mid]的值之后,重置了min或者max
重置之后要重新计算mid的位置啊,所以第50行要再计算一次
这两种写法没有本质的区别,只不过第一种写法mid放在循环里面在开始的时候计算。
我真的很鄙 视你贴的这段代码的作者,什么第一种,第二种,分明就是一种

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
杨_扬 发表于 2012-7-10 10:23
第二种写法中,在41行的循环中在比较了key和arr[mid]的值之后,重置了min或者max
重置之后要重新计算mid的 ...

我也认为,“这两种”其实就是1种,没有本质区别,只是换一下代码顺序而已。
回复 使用道具 举报
好吧,我懂了...不要鄙视我啊,我新手...{:soso_e109:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马