Python 练习
1. 题目
二分查找
2. 分析
假如一个序列已经有序了呢,我们还需要从头找到尾吗?当然不用,折半(二分)是一种经典思想。
3. 实例
def binary_search(sorted_array, val):
if not sorted_array:
return -1
beg = 0
end = len(sorted_array) - 1
while beg <= end:
mid = int((beg + end) / 2)
if sorted_array[mid] == val:
return mid
elif sorted_array[mid] > val:
end = mid - 1
else:
beg = mid + 1
return -1
a = list(range(10))
# 正常值
print(binary_search(a, 1))
print(binary_search(a, -1))
# 边界值
print(binary_search(a, 0))