📅  最后修改于: 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
这个元素。