1、二分查找

二分查找

1、时间复杂度

https://www.cnblogs.com/yellowgg/p/11272908.html

2、一些总结

算法的速度指的并非时间,而是操作数的增速。
谈论算法的速度时,我们说的是随着输入的增加,其运行时间将以什么样的速度增加。
算法的运行时间用大O表示法表示。
O(log n)O(n)快,当需要搜索的元素越多时,前者比后者快得越多。

二分查找的速度比简单查找快得多。
O(log n)O(n)快。需要搜索的元素越多,前者比后者就快得越多。
算法运行时间并不以秒为单位。
算法运行时间是从其增速的角度度量的。
算法运行时间用大O表示法表示。
3、代码示例

def binary_search(number,num):
    count = 1
    low,high = 0,len(number)
    mid = int((low+high) / 2)
    while (low <= high):
        if num > number[mid]:
            low = mid + 1
        elif num < number[mid]:
            high = mid - 1
        else:
            return count,number[mid]
        mid = int((low + high) / 2)
        count += 1

    return None


if __name__ == '__main__':
    number = [item for item in range(10**7)]
    num = input("enter you want to guess the number:")
    if binary_search(number,int(num))[1]:
        print("猜对了 经过%s次猜测%s在序列中" % (binary_search(number,int(num))[0],int(num)))
    else:
        print("猜错了 %s不在序列中" % int(num))

4、应用场景

当数据有序时,二分查找能够提高检索效率。

posted @ 2020-10-30 10:44  Dammond  阅读(111)  评论(0)    收藏  举报