python - 排序顺序搜索
问题描述
嗨,这里的目标是改进使用Sequential Search
.
所以我有一个未排序的 List numbers = [5, 2, 1, 0, 3]
,我试图找到让我们说 element 3
。它需要5 steps
找到它。
我的任务是创建一个名为的新函数sortedSequentialSearch()
,该函数以升序接收排序列表并对其进行改进以减少查找 element 所需的步骤3
。
这是我的正常顺序搜索代码:
def sequentialSearch(theValues, target):
n = len(theValues)
count = 0
for i in range(n):
count = count + 1
if theValues[i] == target:
print(f"Found, {count} steps needed")
return True
return False
如果我说通过,我该如何改进numbers.sort()
?
解决方案
You can use binary search after sorting the array. It has log(n) time complexity.
In this case 2.3 steps, which is better than 3.
推荐阅读
- java - 哪个 java 类在 catalina.out 上发出警告
- java - 在反向代理后面访问 ElasticDB
- java - 避免对未获取的惰性对象进行 GSON 序列化
- python - 使用深度 CNN 和完全连接的分类器转换分割掩码 numpy 数组以进行图像分割
- google-apps-script - 谷歌表格 - 通过匹配值搜索/替换
- mysql - 使具有多个存在条件的 if 语句在 true 时插入
- ignite - 关于 Ignite 中的集群配置
- c++ - 将空源文件添加到 STATIC 库的原因?
- html - 拖动时项目的内容布局中断
- asp.net-core - 在 blazor 中相互交换 div / 组件的位置