📜  python 二进制搜索 - Python (1)

📅  最后修改于: 2023-12-03 15:34:09.791000             🧑  作者: Mango

Python 二进制搜索

Python 的二进制搜索是一种高效的搜索方法,它可以在有序列表中查找特定元素。这种算法是将列表一分为二,然后判断目标元素在哪一半中,继续将那一半一分为二,直到找到目标元素为止。

算法步骤
  1. 输入一个有序列表 arr 和一个目标元素 target
  2. 将列表的中间元素与目标元素进行比较。
  3. 如果中间元素等于目标元素,则找到目标元素。
  4. 如果中间元素大于目标元素,则在左半边继续搜索。
  5. 如果中间元素小于目标元素,则在右半边继续搜索。
  6. 重复 2 到 5 步骤,直到找到目标元素或者左右两侧没有元素可查找。
代码实现
def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] > target:
            right = mid - 1
        else:
            left = mid + 1
    return -1
时间复杂度

二进制搜索算法的时间复杂度为 $O(log_2n)$,其中 $n$ 是列表的长度。由于每次搜索会将目标元素所在区间缩小一半,因此算法的时间复杂度是对数级别的。

应用场景

二进制搜索算法适用于有序列表中查找目标元素。由于该算法的时间复杂度较小,因此广泛应用于计算机科学和其他相关领域,例如搜索算法、排序算法和压缩算法等。