2016-04-16 145 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個添加。