算法图解学习笔记(一)——二分法

Python实现-----二分法

----原理:二分法查询目标元素,就是依次选取中间元素判断是大了还是小了,如果大了就选取之前的一半,重复以上步骤(选取中间元素之后再进行判断),知道最后查询出所需要的元素。切记如果能够使用二分法的序列一定是有序的序列

时间复杂度:O(log2n);

# 二分法
# 定义一个函数,传入一个list和一个元素
def binary_search(list, item):
    # 定义 low 和high是要查找的列表的位置
    low = 0
    high = len(list) - 1
    # 只要范围没有缩小到只剩下一个元素,就继续查找检查中间元素
    while low <= high:
        mid = int((low + high) / 2)
        guess = list[mid]
        # 检查中间元素,大,小,相等
        if guess == item:
            return mid
        if guess > item:
            high = mid - 1
        else:
            low = mid + 1
    return -1

if __name__ == '__main__':
    my_list = [1, 3, 5, 7, 9]
    print(my_list)
    index = binary_search(my_list, 99)
    print(index)

运行结果

算法图解学习笔记(一)——二分法_第1张图片

你可能感兴趣的:(算法图解学习笔记,二分法,算法,python)