Python 练习

1. 题目

二分查找

2. 分析

假如一个序列已经有序了呢,我们还需要从头找到尾吗?当然不用,折半(二分)是一种经典思想。

3. 实例

点我看答案
def binary_search(sorted_array, val):
    if not sorted_array:
        return -1

    beg = 0
    end = len(sorted_array) - 1

    while beg <= end:
        mid = int((beg + end) / 2)
        if sorted_array[mid] == val:
            return mid
        elif sorted_array[mid] > val:
            end = mid - 1
        else:
            beg = mid + 1
    return -1


a = list(range(10))

# 正常值
print(binary_search(a, 1))
print(binary_search(a, -1))

# 边界值
print(binary_search(a, 0))

© 2022 刘士. All rights reserved.

结果匹配 ""

    没有匹配的结果 ""