BinarySearch 二分查找

回眸只為那壹抹淺笑 提交于 2019-12-26 02:06:19
# BinarySearch 二分查找法_Python实现


# 二分查找法是对有序数组的查找.

def binary_search(li, num):
    left = 0
    right = len(li) - 1
    while left <= right:
        mid = (right + left)// 2
        guess = li[mid]
        if num < guess:
            right = mid - 1
        elif guess < num:
            left = mid + 1
        else:
            return mid
    return None


list = [1, 3, 35, 54, 55, 64, 65, 74, 165, 356, 645, 98984]

index = binary_search(list, 165)
print(index)

  

二分查找法是比较简单的查找方式.
对于有序数组来说, 一直询问该数值大于或者小于所需要
二分查找法, 唯一需要注意的是, 在比较了中间值mid之后.
所找值更大, 则查找范围左侧右移到mid下标+1
所找值更小, 则查找范围为右侧左移到mid下标-1

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!