Hi 大家好,今天要來介紹Binary Search的各種應用的介紹。希望已經對binary search有基礎的瞭解了,再繼續看下去。
以下是binary search最常見的程式碼:
def binarySearch(arr, target):
l, r = 0, len(arr) - 1
while l <= r:
mid = (l + r) // 2
if target > arr[mid]:
l = mid + 1
elif target < arr[mid]:
r = mid - 1
else:
return mid
return -1
可以應用在已經排序好的array上,來找出array中和target吻合的值的index。若找不到則回傳-1。
以下是一些我所知的應用類型:
三種類型中,第一型的屬於比較直觀的。其餘兩種有時候很tricky。下一篇預計三種類型的都會分享題目。之後則是會分享進階和混合型。