|
发表于 2021-11-9 09:59:30
|
显示全部楼层
import random
import timeit
import time
t1 = time.time()
haystack = [random.randint(1, 10000000) for i in range(10000000)]
needles = [random.randint(1, 1000) for i in range(1000)]
t2 = time.time()
print(t2 - t1)
haystack = set(haystack)
# 请在此处添加一行代码,使得查找过程的执行效率提高 10000 倍以上。
def find():
found = 0
for each in needles:
if each in haystack:
found += 1
print(f"一共找到{found}个匹配。")
t = timeit.timeit("find()", setup="from __main__ import find", number=1)
print(f"查找过程一共消耗{t}秒。")
# 8.473680973052979
# 一共找到642个匹配。
# 查找过程一共消耗0.0005579999999998364秒。
#
# Process finished with exit code 0
哦哦,我想错了,一直在想,生成两个列表也要话8秒多的时间,怎么都不能将时间压缩这么多啊,看的不仔细啊 |
|