欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

写一个二分查找

程序员文章站 2022-07-12 09:35:12
...

二分查找:
二分查找算法也称折半查找,基本思想就是折半,和平时猜数字游戏一样,比如猜的数字时67,猜测范围是0-100,则会先猜测中间值50,结果小了,所以就会从50-100猜测,中间值为75,结果大了,又从50-75猜测中间值,一直到猜中为止。因此,二分查找有一个限制就是原先数组需要是一个有序数组。

// An highlighted block
def binarysearch(a,num):
    length = len(a)
    low = 0
    high = length - 1
    while low <= high:
        mid = int(low+((high-low)/2))
        if a[mid]< num:
            low=mid+1
        elif a[mid]>num:
            high=mid-1
        else:
            return mid
    return -1

if __name__=='__main__':
    b=[1,3,4,8,22,65,73,90]
    print(b)
    a=binarysearch(b,22)
    print(a)