二分查找算法 Python

PYTHON
def binary_search(arr, target):
    """
    在有序数组 arr 中查找目标值 target 的索引。
    如果找到,返回索引;否则返回 -1。
    """
    left, right = 0, len(arr) - 1

    while left <= right:
        mid = (left + right) // 2  # 计算中间位置
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1          # 目标在右半部分
        else:
            right = mid - 1         # 目标在左半部分

    return -1

# 示例用法
if __name__ == "__main__":
    # 测试数据(必须有序)
    sorted_list = [1, 3, 5, 7, 9, 11, 13, 15]
    target = 7

    index = binary_search(sorted_list, target)
    if index != -1:
        print(f"元素 {target} 找到,索引为 {index}")
    else:
        print(f"元素 {target} 不存在于列表中")
← 返回列表

评论 (0)

登录后可以发表评论

立即登录
💬

还没有评论,快来发表第一条评论吧!