二分查找算法的python实现

下面是一个使用 Python 实现的二分查找算法示例代码:

def binary_search(arr, value):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == value:
            return mid
        elif arr[mid] < value:
            left = mid + 1
        else:
            right = mid - 1
    return -1
# 测试代码
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]
index = binary_search(arr, 7)
if index != -1:
    print("Found at index:", index)
else:
    print("Not found")

在上述代码示例中,binary_search 函数使用 Python 实现了二分查找算法。该函数接收一个有序数组 arr 和要查找的值 value,返回值为查找结果的下标。如果未找到要查找的值,则返回 -1。

在函数中,通过比较中间值与要查找的值的大小,不断更新数组的左右边界,最终在数组中查找指定元素。如果查找到指定元素,则返回该元素在数组中的下标;否则返回 -1。 在测试代码中,定义了一个有序数组 arr,调用 binary_search 函数查找值为 7 的元素,并输出查找结果。

需要注意的是,Python 实现的二分查找算法不需要传入左右边界参数,因为 Python 中可以使用数组切片来实现对数组的划分。

 
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
确定