time-complexity - O(n) 和 O(log n) 的乘积是多少?
问题描述
正在学习归并排序算法,发现归并排序的时间复杂度为O(n log n)
.
想知道我们是否可以说O(n log n)
= O(n) * O(log n)?
解决方案
不,这样做没有任何意义。Big-O 函数产生函数集合,集合不能相乘。
更一般地说,您通常不会对 O(...) 结果执行任何操作。没有加法、减法、乘法。没有代数。O(...) 通常出现在证明的结论中:“根据上面的分析,我得出结论,芬克尔算法的最坏情况复杂度是 O(whatever)。” 它并没有真正出现在可能对其进行代数操作的中间。
(我想你可以执行集合操作。我从未见过有人这样做。)
推荐阅读
- android - 如何检查 TextView 的文本是否超过最大行数
- perl - 我的文件没有在 perl 中正确复制
- visual-studio - Visual Studio 2017 没有语法高亮或智能感知剃须刀视图
- vue.js - Vuex 四种状态如何区分
- alexa - 应该实现哪个alexa智能家居技能接口支持“open xxx”命令?
- django - 如何获取超级用户的信息?
- python - (Python,硒)隐式和显式等待不起作用
- javascript - 无法解决对象中的承诺
- java - 当接口实现的方法比接口多时,依赖倒置原则会失效?
- angular - ng build --prod 无法确定 X 类的模块!将 ThreadListTabsComponent 添加到 NgModule 以修复它