1. 程式人生 > 其它 >二分查詢(python)

二分查詢(python)

具體做法:

  • step 1:從陣列首尾開始,每次取中點值。
  • step 2:如果中間值等於目標即找到了,可返回下標,如果中點值大於目標,說明中點以後的都大於目標,因此目標在中點左半區間,如果中點值小於目標,則相反。
  • step 3:根據比較進入對應的區間,直到區間左右端相遇,意味著沒有找到.
 def search(self , nums: List[int], target: int) -> int:         # write code here         l = 0         r = len(nums) - 1         # 從陣列首尾開始,直到二者相遇         while l <= r :             # 每次檢查中點的值             m = int((l+r)/2)             if nums[m] == target:                 return m             # 進入左的區間             if nums[m] > target:                 r = m - 1             # 進入右區間             else:                 l = m + 1         # 未找到         return -1