二分法

房东的猫 提交于 2019-11-27 14:59:59

二分法查找使用:二分法的输入为一个有序的元素列表,如果目标元素存在有序列表中,返回其位置,否则返回null;

使用二分法查找时,每次比较的元素均为有序列表的中间元素,每次都将余下的元素排查一半;

对于包含n个元素的有序列表,使用二分法查找最大复杂度为Olog(n)。

def binary_search(li , item):    low = 0    high = len(li) - 1    while low <= high:        mid = (low + high )//2        if li[mid] == item:            return mid        elif li[mid] > item:            high = mid - 1        else:            low = mid + 1    return Noneif __name__ == '__main__':    li = [1, 2, 3, 4, 5, 6, 7, 8, 9]    print(binary_search(li, 9))

 

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