算法-二分查找

二分查找基于索引,所以必须是有序的

def binary_search(list, item):
    high = len(list) - 1
    low = 0

    # 如果不加=号,无法计算两端的数字(1,7)
    while low <= high:
        mid = (high + low) // 2
        guess = list[mid]
        if guess == item:
            return mid
        elif guess < item:
            low = mid + 1
        else:
            high = mid - 1
    return None


ret = binary_search([1, 3, 5, 7], 5)
print(ret)  # 1
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容