【发布时间】:2017-03-27 21:16:55
【问题描述】:
到目前为止,理解 Big-O 表示法及其计算方式是可以的……大多数情况都很容易理解。但是,我只是遇到了一个我一生都无法弄清楚的问题。
方向:为表达式选择最佳的大 O 表示法。
(n^2 + lg(n))(n-1) / (n + n^2)
答案是 O(n)。这一切都很好,但考虑到分子中的n^3 因素,这如何合理化? n^3 不是最好的,但我认为f(n) <= O(g(n)) 之间有一个“最小”基础?
这本书没有解释任何数学内部运作,所有东西都被注入了一个可能的解决方案(取f(n)并生成一个略大于f(n)的g(n))。
有点难过。如果必须的话,对数学或数学引用发疯。
另外,给定一段代码,如何确定每行的时间单位?您如何根据一行代码(或多行代码)确定对数时间?我知道声明和设置变量被视为 1 个时间单位,但是当事情变得糟糕时,我将如何解决?
【问题讨论】: