📅  最后修改于: 2023-12-03 15:28:51.246000             🧑  作者: Mango
随机二分搜索算法(Randomized Binary Search Algorithm)是一种常用的搜索算法,常用于在有序数组中查找目标元素。随机二分搜索算法利用二分策略,将搜索范围不断缩小,同时引入随机化的思想,避免算法陷入死循环。其时间复杂度为 $O(\log n)$。
随机二分搜索算法的流程如下:
下面是 Python 语言实现随机二分搜索算法的代码示例:
import random
def randomized_binary_search(array, target):
"""
随机二分搜索算法
:param array: 有序数组,升序
:param target: 目标元素
:return: target 在 array 中的索引,若不在,返回 -1
"""
left, right = 0, len(array) - 1
while left <= right:
mid = left + random.randint(0, right - left)
if array[mid] > target:
right = mid - 1
elif array[mid] < target:
left = mid + 1
else:
return mid
return -1
随机二分搜索算法是一种高效的搜索算法,能够在时间复杂度为 $O(\log n)$ 的前提下,找到有序数组中的目标元素。随机化的思想能够保证算法不陷入死循环,充分利用了二分策略,应用广泛。