【发布时间】:2016-03-14 19:04:05
【问题描述】:
在某些情况下,您更喜欢 O(log n) 时间复杂度而不是 O(1) 时间复杂度?还是O(n) 转O(log n)?
你有例子吗?
【问题讨论】:
-
如果理解前者而不是后者,我更喜欢
O(log n)算法而不是O(1)算法...... -
理论计算机科学中有大量具有 O(1) 运算的不切实际的数据结构。一个例子是位向量上的 select(),它可以支持 o(n) 额外空间和 O(1) 每次操作,使用 5 层间接。根据Succinct Data Structure Library 的作者的说法,简单的二分搜索结合 O(1) rank() 在实践中会更快。
-
较低的渐近复杂度并不能保证更快的运行时间。研究一个具体例子的矩阵乘法。
-
另外...任何算法都可以转换为 O(1),只要有足够大的表查找 ;)
-
@Hoten -- 假设表查找为 O(1),对于您正在谈论的表的大小,这根本不是给定的! :)
标签: algorithm big-o time-complexity