有关C++二分查找

如果元素共有奇数个,如11个。那么第一次的middle是第五个元素,还是第六个元素呢?C++的”/“是四舍五入,还是舍?(intmiddle;)... 如果元素共有奇数个,如11个。那么第一次的middle是第五个元素,还是第六个元素呢?C++的”/“ 是四舍五入,还是舍?(int middle;) 展开
 我来答
z362752011
2013-10-09 · 超过31用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:38.7万
展开全部
C 和C++的/是除法取整.
比如你这里的11个元素,11/2按照自然结果为5.5,但是在C和C++中整数进行相除,仍然得到整数结果,所以就是5.5的整数部分即5.
至于是第五个还是第六个元素,要看你这个5是作为数组的下标索引,还是用于其它的计算元素的顺序了.(按照通常的做法,是作为下标索引,就是第六个元素)
追问
区间是(left<=right) 
还是(left<right)呢?
还是一样的呢?
追答
通常是left<right,因为相等的时候,已经没有必要再进入分支了.
kevin_sxw
2013-10-10 · TA获得超过165个赞
知道小有建树答主
回答量:80
采纳率:0%
帮助的人:36.7万
展开全部
如果是11个元素,那么11/2 = 5,即middle取的是第6个元素(C++里面的下标都是从0开始)。C/C++里面对整形数的除法都是只取整数部分而丢弃小数部分,即9/10也等于0,而不等于1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hyfatbd
2013-10-09 · TA获得超过237个赞
知道小有建树答主
回答量:149
采纳率:100%
帮助的人:114万
展开全部
向0靠近(正数变小,负数变大)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chujiangke001
2013-10-09 · TA获得超过1605个赞
知道小有建树答主
回答量:1352
采纳率:0%
帮助的人:699万
展开全部
是舍

是舍

是舍
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式