python3.0 算法学习笔记(一)二分查找
说明
二分查找,是针对有序列表快速查找元素算法
要求
对于查找的对象必须是有序的
代码实现
如果被查找的元素包含在有序list中,则返回index,否则返回空
def binary_search(search_list, item):
"""
二分查找算法
:param search_list: 有序list
:param item: 查找的元素
:return: 存在返回位置,不存在返回None
"""
start_index = 0
end_index = len(search_list) - 1
while start_index <= end_index:
mid_index = (start_index, end_index) / 2
search_item = search_list(mid_index)
if search_item < item:
start_index = mid_index + 1
if search_item > item:
end_index = mid_index - 1
else:
return mid_index
return None