线性查找&二分查找

霸气de小男生 提交于 2019-11-28 11:34:56
'''线性查找: 从头至尾依次匹配。时间复杂度为O(n)'''def linear_search(li, val):    for index in range(len(li)):        if val == li[index]:            return index    return None列表的index()方法使用的线性查找,因为列表是无序的'''二分查找:在排序的列表中查找某元素。时间复杂度为O(log2n)'''def binary_search(orderd_list, val):    left = 0    right = len(orderd_list) - 1    while left <= right:        mid = (left + right) // 2        if val == orderd_list[mid]:            return mid        elif val > orderd_list[mid]:  # 要查找的值在mid右侧            left = mid + 1        else:     # 要查找的值在mid左侧            right = mid - 1    return None
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!