在以下视频中,对渐进分析进行了解释:
https://class.coursera.org/algo-004/lecture/169

但是我不明白什么是“低阶术语”和“常数因子”本身? (在视频的第4分钟)。

合并排序为6n*log2(n)+6n。为什么6n是低阶术语,而这里的constant factor是6?这些术语有具体定义吗?

最佳答案

低阶字词:

这里的“顺序”是指order of magnitude

在处理诸如xx之类的非常简单的术语时,该概念易于理解和解释。 x具有数量级1,因为它可以写为x,而x具有2阶-数量级等于该项中变量的幂。但是,当您通过添加log等使事情复杂化时,事情变得更加朦胧(至少对我而言)。 [1]

用某种非正式的术语来说,如果f(x)趋于无穷大,则g(x)的顺序比f(x) < g(x)低。

只需替换一些非常大的x值,就很容易看出f(n) = 6ng(n) = 6n*log2(n)的顺序低(正确的方法是用数学方式证明它,但是用较大的值替换对于简单术语而言是有效的)。

terms本质上是由加/减符号分隔的事物。

因此,低阶术语只是比其他术语低阶的任何术语。

大概这与the leading-order term相反,ojit_a是数量级最大的术语。

[1]:我经常处理big-O,但是已经有一段时间了(高中吗?),因为我已经处理了数量级的基础知识,所以如果我可能错过或忘记了有关该部分的内容,我们深表歉意。

常数因子:

“因子”是乘法中的术语。对于n6n6是因素。

常数因子就是不依赖于输入参数的任何事物(在这种情况下为n)。

在这里,无论我们做什么nn始终保持为6,因此它是恒定的。

关于big-o - 算法中的常数因子和低阶项是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22614585/

10-12 18:19