请编写一个二进制搜索功能,该功能可以搜索已排序列表中的项目。 该函数应返回列表中要搜索的元素的索引。
import math
def binary_search(li, element):
bottom = 0
top = len(li) - 1
index = -1
while top >= bottom and index == -1:
mid = int(math.floor((top + bottom) / 2.0)) # 二分查找
if li[mid] == element:
index = mid
elif li[mid] > element:
top = mid - 1
else:
bottom = mid + 1
return index
li = [1, 2, 3, 4, 5, 7, 8, 9]
print(binary_search(li, 1))
二分查找是一种快速查找的方法,值得去学习