二分查找python

二分查找

1.二分查找,输入是有序的元素列表,如果要查找的元素包含在列表中,则返回器位置,否则,返回NULL。
优点:速度快,效率可达O(log n);缺点:需要有序的数据结构
O(logn)
2.vs 简答查找 O(n) 速度更快
简单查找是指一个一个的查找,如数组a[n],需要查找n次
3.对数时间,其中对数是幂运算的逆运算,log计算机中指log2

def binary_search(lists, item):
    low = 0
    high = len(lists)-1
    while low <= high:
        mid = int((low+high)/2)
        guess = lists[mid]
        if guess == item:
            return mid
        if guess < item:
            mid = mid+1
        else:
            high = mid-1
    return None

a = [1, 2, 3, 4, 5]
b = binary_search(a, 3)
print(b)

猜你喜欢

转载自blog.csdn.net/wehung/article/details/82668894