Python-二分查找法
二分查找法是运用分治策略
的典型例子。
from typing import List
class BinarySearch:
@staticmethod
def rank(nums:List[int],key:int):
''' 二分查找法 找到则返回索引,找不到返回-1 :param nums: :param key: :return: '''
left = 0
right = len(nums) - 1
while left <= right:
middle = (left + right) // 2
if nums[middle] > key:
right = middle - 1
elif nums[middle] < key:
left = middle + 1
else:
return middle
return -1
if __name__ == '__main__':
print(BinarySearch.rank(nums=[1,2,3,4,5,6],key=5))