mid=(left+right)/2;
mid = (high - low) / 2 + low; 這樣寫可以防止left + right溢出 ,不過數足夠大是時候該溢還是溢
為什么要取右邊中間數呢?這是因為在區間里 只有
2 個元素的時候,把[left…right]劃分成[left…mid - 1]和[mid…right]這兩個區間,int mid = (left + right) / 2 這種取法不能把搜索區間縮小。
mid=(left+right)/2;
mid = (high - low) / 2 + low; 這樣寫可以防止left + right溢出 ,不過數足夠大是時候該溢還是溢
為什么要取右邊中間數呢?這是因為在區間里 只有
2 個元素的時候,把[left…right]劃分成[left…mid - 1]和[mid…right]這兩個區間,int mid = (left + right) / 2 這種取法不能把搜索區間縮小。
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。 如若轉載,請注明出處:http://www.pswp.cn/news/447062.shtml 繁體地址,請注明出處:http://hk.pswp.cn/news/447062.shtml 英文地址,請注明出處:http://en.pswp.cn/news/447062.shtml
如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!