python實現lower_bound和upper_bound
阿新 • • 發佈:2018-11-29
由於對於二分法一直都不是很熟悉,這裡就用C++中的lower_bound和upper_bound練練手。這裡用python實現
lower_bound和upper_bound本質上用的就是二分法,lower_bound查詢有序陣列的第一個小於等於目標數的,upper_bound查詢有序陣列第一個大於等於目標數的
下面是python實現的lower_bound程式碼
def lower_bound(arr,target,i,j): while i < j: mid = i + (j - i) / 2 mid = int(mid) if target > arr[mid]: i = mid + 1 else: j = mid return mid
upper_bound的python程式碼
def upper_bound(arr,target,i,j): while i < j: mid = int(i + (j - i) / 2) if target > arr[mid]: i = mid + 1 else: j = mid print(mid) return mid