Big o 什么是算法中的常数因子和低阶项?
在以下视频中,对渐近分析进行了解释: 但我不明白什么是“低阶项”和“常数因子”本身?(在视频的第四分钟)Big o 什么是算法中的常数因子和低阶项?,big-o,complexity-theory,Big O,Complexity Theory,在以下视频中,对渐近分析进行了解释: 但我不明白什么是“低阶项”和“常数因子”本身?(在视频的第四分钟) 合并排序是6n*log2(n)+6n。为什么这里6n是低阶项,而6是常数因子?这些术语有具体的定义吗?当big-O中的函数有几个术语时,可以保留增长较快的一个,因为它迟早会“隐藏”其他术语。你可以乘以任何常数 O(6.N.Lg(N)+6.N)与O(6.N.Lg(N))或O(N.Lg(N))或O(0.01.N.Lg(N)+42.sin(N)-1.745+1/N) 主导项总是N.Log(N)(
合并排序是
6n*log2(n)+6n
。为什么这里6n
是低阶项,而6是常数因子?这些术语有具体的定义吗?当big-O中的函数有几个术语时,可以保留增长较快的一个,因为它迟早会“隐藏”其他术语。你可以乘以任何常数
O(6.N.Lg(N)+6.N)
与O(6.N.Lg(N))
或O(N.Lg(N))
或O(0.01.N.Lg(N)+42.sin(N)-1.745+1/N)
主导项总是N.Log(N)
(对数的基础并不重要)。低阶项:
这里的“订单”是指订单
当处理非常简单的术语,如x
或x2
时,这个概念很容易理解和解释x
具有数量级1
,因为它可以写成x1
,而x2
具有数量级2-数量级等于项中变量的幂。但是当你通过添加log
使事情复杂化时,事情会变得有点模糊(至少对我来说是这样)。[1]
在一些非正式的术语中,f(x)
比g(x)
低一级,如果f(x)
因为x
趋于无穷大
很容易看出,f(n)=6n
比g(n)=6n*log2(n)
低一级,只需用一个非常大的值替换n
(正确的方法是从数学上证明它,但用一个大的值替换简单的术语往往有效)
基本上是由加号/减号分隔的事物
所以低阶项就是任何比其他项低阶的项
大概这是相反的,这是一个最大数量级的术语
[1] :我经常和big-O打交道,但我已经有一段时间(高中?)没有处理数量级的基本知识了,因此如果我可能错过或忘记了有关该部分的内容,请道歉
常数系数:
“因子”是乘法中的一个术语。对于6n
,6
和n
是因素
常数因子就是不依赖于输入参数的任何东西(在本例中为n
)
在这里,无论我们做什么,n
,6
将始终保持在6
,因此它是不变的。通常,你最好在论坛上问一些与课程相关的问题,其他学生可以帮助你解决任何你自己无法理解的问题
假设我们有一个多项式函数F(n)=5n³+8n+3,n³的指数最高,因此5n³是多项式的最高阶项。因此,所有其他术语都是低阶术语
现在,为什么它们不相关。好的,这是大O符号的定义
T(n)=O(F(n))如果我们能找到c和n0,比如对于所有的n>=n0t(n),请,algori
thms。是的,它们有具体的定义。你可以在任何算法入门教材中找到它们。@Christos,特别是哪本书?@GiorgiTsiklauri你可以看一看《我不认为这是一样的》的前两章。相反,如果F=O(6.N.Lg(N)+6.N),那么我们可以证明F也是O(N Lg(N))。