algorithm - 非随机访问结构中二进制搜索的复杂性
问题描述
对排序数组执行二分查找具有O(logN)
复杂性,其中 N 是数组中元素的数量。
但是,如果我们在排序(链接)列表中执行二进制搜索,那么复杂性是多少?
我们正在logN
对范围的中间元素进行比较,但要达到范围,复杂性是O(N)
由于列表不是随机访问结构这一事实。
时间复杂度也是如此:
1)logN * O(N) = O(N)
视为logN
常数?或
2)在所有情况下都 logN*O(N) = O(NlogN)
意味着什么?logN = O(logN)
这里什么是正确的?1 还是 2?
解决方案
第二个假设是正确的,第一个是错误的。渐近分析处理增长。如果节点数量增加,log(n) 也会增加。你不能把它当作一个常数。对于一个非常基本的示例,如果您有 10 个节点并且执行需要 10 秒,假设 100 个节点执行需要 200 秒似乎比假设 100 秒更准确(通过忽略 log(n))。
推荐阅读
- c# - 如何更新由 webhook 触发的 azure 函数中的记录?
- npm - 无法安装 expo-cli ,抛出错误并花费大量时间
- c# - 是否可以以编程方式生成包含组织结构图的 Excel 文件?
- c++ - dtor 中的这个 unique_lock 是否有任何用途?
- javascript - 使用 Materialize-CSS 和 React 的 TypeError
- arrays - 如何改变这个 foreach 就像 for (i=0;i
我是使用 ejs 的新手,我想将我的数据库数据传递给我的 ejs 文件,但我想将 forEach 语法更改为 for(i=0;i
我找到了一个代码来显示它,但它带来了我所有的数据库数据,我只想从我的数据库中传递 4 个数据
这是我的 server.js 代码
var hotelS
- python - 如何根据字典的值(也可以是列表)动态生成 SQLite 插入查询?
- git - git 不会使用 pull 检索远程标签,但可以使用 fetch
- javascript - 是否有任何 npm 包用于计算 doc/docx 文件的字数?
- json - 如何使用顶部有图像的 Json 制作表格