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