【发布时间】:2016-10-04 08:28:53
【问题描述】:
很多人在比较算法时都会谈论它们。例如,比较快速排序和平滑排序时,两者的平均时间复杂度都是 O(nlogn),但他们说平滑排序最差,因为“它有更多隐藏常量”
这是什么意思?
【问题讨论】:
-
谢谢,我很快就明白了这意味着什么。所以基本上,对于大符号 O(n) 和 0(2n) 是相同的,两者都表示为 O(n)。但是第二个比较慢,因为它有一个隐藏的常量
很多人在比较算法时都会谈论它们。例如,比较快速排序和平滑排序时,两者的平均时间复杂度都是 O(nlogn),但他们说平滑排序最差,因为“它有更多隐藏常量”
这是什么意思?
【问题讨论】:
在分析算法的运行时间时会删除常数乘数。例如100*n 被标记为O(n),所以它是3*n。当有人谈论“隐藏”常量时,他们谈论的是这些被忽略的乘数。
值得注意的是,不仅“隐藏”常量而且操作的成本也极大地影响了实际运行时间。例如,10 个部门和分配可能需要比 20 个添加更长的时间。
【讨论】: