2016-04-16 72 views
0

很多人在比较算法时都会谈论它们。例如,当比较quicksort和smoothsort时,它们的平均时间复杂度为O(nlogn),但他们认为smoothsort是最糟糕的,因为“它具有更多隐藏常量”这是什么意思?什么是“隐藏常量”?

+0

相关:http://stackoverflow.com/questions/22188851/why-is-constant-always-dropped-from-big-o-analysis – Caramiriel

+0

谢谢,我很快理解这是什么意思。所以基本上,对于大O表示O(n)和0(2n)是相同的,两者都表示为O(n)。但是第二个是较慢的,因为它有一个隐藏的常量 – Imnewhere

回答

0

分析算法的运行时间时会丢弃常数乘数。例如100*n被标记为O(n),因此它的编号为3*n。当有人谈论“隐藏”的常量时,他们正在谈论这些被忽略的乘数。

值得一提的是,不仅“隐藏”常量也是运营成本极大地影响了实际运行时间。例如,10个部门和任务可能需要超过20个添加。