Python 二分查找与顺序查找比较
程序员文章站
2022-03-01 18:44:08
...
import time
def input_info():
lst = list(range(1, 10001))
target = 10000
return lst, target
def sequential_search(lst, target):
count = 0
t0 = time.perf_counter()
for i in lst:
count += 1
if i == target:
print("顺序查找法已找到目标,共找{}次,耗时{}秒".format(count, time.perf_counter() - t0))
break
if count == len(lst) and lst[-1] != target:
print("未找到目标")
def binary_search(lst, target):
low = 0
count = 0
high = len(lst)
t1 = time.perf_counter()
while low < high:
count += 1
mid = int((low + high)/2)
guess = lst[mid]
if guess == target:
print("顺序查找法已找到目标,共找{}次,耗时{}秒".format(count, time.perf_counter() - t1))
break
elif guess < target:
low = mid
else:
high = mid
def main():
lst, target = input_info()
if target < lst[0] or target > lst[-1]:
print("目标溢界")
else:
sequential_search(lst, target)
binary_search(lst, target)
main()
顺序查找法已找到目标,共找10000次,耗时0.0005691999999999919秒
顺序查找法已找到目标,共找14次,耗时8.200000000013752e-06秒
Process finished with exit code 0
上一篇: 二分查找(折半查找)(##怎么统计比较次数呢##)
下一篇: 二分查找:比较次数