二分法查詢的死迴圈問題

2021-10-08 16:24:51 字數 497 閱讀 2863

二分法是一種查詢方法,它可以將查詢的時間複雜度由n降為log(n),但我們在寫二分法的時候有時會出現死迴圈的問題,出現死迴圈基本上都是[left,right]範圍內只剩下兩個元素時出現的(right-left=1),為了預防死迴圈的出現,不如試試下面這種寫法,當[left,right]區間內只剩下兩個元素時break二分迴圈,為left,right索引下的元素做單獨判斷即可

public

intmybinarysearch

(int

nums,

int target)

else

if(nums[mid]

else

mid=left+

(right-left)/2

;}if(nums[left]

==target)

else

if(nums[right]

==target)

else

}

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

二分法查詢

前幾天csdn上說只有10 程式設計師能寫出正確的二分法查詢 so.我在看過二分法查詢方法後寫了乙個 一次測試成功.範圍 需要次數 10 4 100 7 1000 10 10000 14 100000 17 1000000 20 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...