如果您有这样的公式: 3n 2 + 10n.log(n)+ 1000n + 4.log(n)+ 9999 。
你选择增长最快的大字符功能吗?在这种情况下,n 2 的大O.
有人可以帮我理解这是在问什么吗?假设您的计算机需要 1分钟来解决大小 n = 1,000 的问题实例。假设您购买的计算机比旧计算机运行快1000倍。假设我们的算法具有以下时间复杂度 T(n),那么在1分钟内可以运行哪些实例大小?
答案 0 :(得分:3)
假设T(n)是执行n次操作所需的时间(op)。
我们知道旧机器中的T(1000)= 1',新机器中的T(1000)= 1'/ 1000(因为新机器的速度快1000倍。)
a) T(n)= n
这意味着旧机器中的1'运行1'。在新机器中(快1000倍)是1000 op in 1'/ 1000。因此新机器中的1'1000000运行,答案是100万。换句话说,新机器将在1'内计算1000000次操作(这是每分钟1000次操作。)
b) T(n)= n ^ 3
这里我们有1000 ^ 3 op in 1'(旧机器)和1000 ^ 3 op in 1'/ 1000(新机器)。因此,在新机器中:1'中1000 ^ 3 1000 op,或1'中1000 ^ 3 10 ^ 3 op,即1'中10000 ^ 3 op,答案是万。
c) T(n)= 10n
我们在1'(旧)中有10 * 1000 op,在1'/ 1000(新)中有10 * 1000 op。所以,1'中10 * 1000000 op,而答案又是100万。
正如我们所看到的,T(n)= n和T(n)= 10 n的答案是相同的。事实上,无论C的值是多少,它们也等于T(n)= C n的答案。 0.为了看到这一点,我们只需要用上面的C代替10:
C 1000 op in 1'(旧),C 1000 op in 1'/ 1000(new)或C 1000000 in 1',答案是1000000。
这就是为什么我们谈论O(n),O(n ^ 2),O(n3)等,而不管O内隐藏的常数。
答案 1 :(得分:1)
答案 2 :(得分:0)