📌  相关文章
📜  查找一个排序数组中存在的额外元素的索引(1)

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

在排序数组中查找额外元素的索引

当我们需要在一个已经排序的数组中查找一个额外的元素时,可以使用二分查找算法来进行快速查找。下面是一个使用 Python 语言实现二分查找算法的例子。

def binary_search(arr, target):
    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

在上面的代码中,arr 是一个已经排好序的数组,target 是我们要查找的额外元素。函数会返回数组中目标元素的索引值,如果没有找到,会返回 -1

使用二分查找算法能够快速地定位目标元素,时间复杂度为 O(log n)。

下面是一个使用二分查找算法查找数组中元素的例子。

arr = [1, 3, 5, 7, 9]
target = 7

index = binary_search(arr, target)
print(index) # 3

以上代码会返回 3,表示 7 在数组 arr 中的索引值是 3

如果在数组中找不到目标元素,返回值为 -1

arr = [1, 3, 5, 7, 9]
target = 8

index = binary_search(arr, target)
print(index) # -1

以上代码会返回 -1,因为数组 arr 中没有 8 这个元素。