二分法的最簡潔寫法

2021-09-11 12:20:14 字數 556 閱讀 4357

返回結果:

1、如果目標值存在陣列裡,返回目標值的索引

2、如果目標值不在陣列,返回目標值應該插入的位置(插入能夠保證陣列有序)

def lower_bound(array, first, last, value): # 返回[first, last)內第乙個不小於value的值的位置

while first < last: # 搜尋區間[first, last)不為空

mid = first + (last - first) // 2 # 防溢位

if array[mid] < value: first = mid + 1

else: last = mid

return first # last也行,因為[first, last)為空的時候它們重合

public int firstoccurrence(int nums, int target) 

if (nums[mid] >= target)

}return low;

}

參考:

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 ...

二分法,二分搜尋

二分法是乙個應用很廣泛的演算法 好吧,剛說出這句話的時候,我查了一下資料,發現我了解的應用寥寥無幾.ok,既然不知道,那就下次補充把。咱們直接進入主題。二分法 bisection method 是一種方程式根的近似值求法。演算法 若要求已知函式f x 0的值則 1.先找出乙個區間 a,b 使得f a...