def binarySearch(s,v): begin,end = 0, len(s)-1 isfound = False while begin <= end: mid = # 取得中位元素在队列中的序号 if s == v: # 将中位元素与目标比较 isfound = True print("Found:%d" % mid) break elif v > s : # 如果目标>中位元素 # 更新搜索的起始位置 else: end = mid - 1 if isfound == False: print("Not found") a = [1,3, 12, 45, 66, 89, 123, 154, 768, 9921] binarySearch(a,89) 运行结果: Found: 5
时间: 2024-02-10 18:35:24 浏览: 105
binarysearch:我对binarysearch.com问题的解决方案
这是一个二分查找算法的 Python 实现,它接收两个参数:一个有序的列表 s 和一个要查找的值 v。它首先将搜索的起始位置 begin 和结束位置 end 初始化为列表的起始位置和结束位置。在 while 循环中,它计算中位元素的位置 mid,并将其与目标值 v 进行比较。如果它们相等,它将打印出 mid 的值,并将 isfound 标志设为 True。如果 v 大于中位元素 s[mid],则将 begin 更新为 mid + 1;否则将 end 更新为 mid - 1。如果在循环结束时 isfound 仍然为 False,则打印出 "Not found"。在这个例子中,给定列表 a 中的值为 [1,3, 12, 45, 66, 89, 123, 154, 768, 9921],要查找的值为 89,因此该函数打印出 "Found: 5",表示值 89 在列表的第 5 个位置。
阅读全文