二分查找要求:线性表是有序表,即表中结点按关键字有序,并且要用向量作为表的存储结构。不妨设有序表是递增有序的。
思路:循环实现和递归实现。
#循环实现
def HalfSearch(OrderedList, key, left, right):
while left <= right:
mid = (left + right) // 2
if key == OrderedList[mid]:
return mid
elif key > OrderedList[mid]:
left = mid + 1
else:
right = mid - 1
return None
#递归实现
def HalfSearch(OrderedList, key, left , right):
if left > right:
return None
mid = (left + right) // 2
if key == OrderedList[mid]:
return mid
elif key > OrderedList[mid]:
return HalfSearch(OrderedList, key, mid + 1, right)
else:
return HalfSearch(OrderedList, key, left, mid - 1)
本文介绍了二分查找的基本要求,即线性表必须是有序的,并使用向量作为存储结构。文章提供了两种实现方式:循环实现和递归实现,帮助读者理解二分查找的工作原理。
345

被折叠的 条评论
为什么被折叠?



