
个人主页:丷从心·
系列专栏:分治算法
学习指南:Python学习指南

Python实现def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
arr = [1, 3, 5, 7, 9]
target = 5
res = binary_search(arr, target)
if res != -1:
print(f'目标元素 {target} 在列表中的索引为 {res}')
else:
print('目标元素不在列表中')
目标元素 5 在列表中的索引为 2
while循环被执行了
O
(
log
n
)
O(\log{n})
O(logn)次,循环体内运算需要
O
(
1
)
O(1)
O(1)时间,因此整个算法在最坏情况下的时间复杂性为
O
(
log
n
)
O(\log{n})
O(logn)