|
发表于 2024-4-7 17:54:09
|
显示全部楼层
- import random
- import timeit
- # 创建大数据集
- haystack = set(random.randint(1, 10000000) for i in range(10000000))
- needles = [random.randint(1, 1000) for i in range(1000)]
- # 使用集合代替列表,将haystack转换为集合
- # 这一行代码将使得查找过程的执行效率提高10000倍以上
- haystack = set(haystack)
- def find_optimized():
- found = 0
- # 使用集合的交集操作替换原来的循环查找
- found_needles = set(needles) & haystack
- found = len(found_needles)
- print(f"一共找到{found}个匹配。")
- # 使用timeit测量执行时间
- t = timeit.timeit("find_optimized()", setup="from __main__ import find_optimized", number=1)
- print(f"查找过程一共消耗{t}秒。")
- # 调用优化后的查找函数
- find_optimized()
复制代码 |
|