来自公式的大o表示法

时间:2015-09-17 01:19:09

标签: algorithm big-o

如果您有这样的公式: 3n 2 + 10n.log(n)+ 1000n + 4.log(n)+ 9999

你选择增长最快的大字符功能吗?在这种情况下,n 2 大O.

有人可以帮我理解这是在问什么吗?假设您的计算机需要 1分钟来解决大小 n = 1,000 的问题实例。假设您购买的计算机比旧计算机运行快1000倍。假设我们的算法具有以下时间复杂度 T(n),那么在1分钟内可以运行哪些实例大小?

  • T(n)= n
  • T(n)= n 3
  • T(n)= 10n

3 个答案:

答案 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)

  1. 是的,3n ^ 2,或者只是n ^ 2,将是“最大”的组件。
  2. 对于每个等式,将T(n)设置为1/1000 min并将n设置为1000(新计算机解决n = 1000大小问题所花费的时间的关系)。你需要做什么才能让左侧变为1分钟?如果你在右边做同样的事情,n代表什么价值?

答案 2 :(得分:0)

这是我对作业的回答: enter image description here