【发布时间】:2016-01-25 19:41:31
【问题描述】:
我最近陷入了一场争论/辩论,我正在努力对正确的解决方案做出明确的判断。
众所周知n! grows very quickly,但究竟有多快,足以“隐藏”所有可能添加到其中的额外常量?
假设我有这个愚蠢而简单的程序(没有特定的语言):
for i from 0 to n! do:
; // nothing
鉴于输入是n,那么它的复杂性显然是O(n!)(甚至是ϴ(n!),但这与这里无关) .
现在让我们假设这个程序:
for i from 0 to n do:
for j from 0 to n do:
for k from 0 to n! do:
; // nothing
Bob 声称:“这个程序的复杂性显然是 O(n)O(n)O(n!) = O(n!n^2) = O((n+2)!)。”
Alice 回应:“我同意 bob 你的观点,但实际上如果你说复杂度是 O(n!) 就足够了,因为 O(n!n^k) = O(n!) 对于任何 k >= 1 常量。"
爱丽丝在她对鲍勃分析的笔记中是否正确?
【问题讨论】:
标签: big-o time-complexity asymptotic-complexity