有多个表示法,例如或等。我想知道,实际上是否存在诸如或,或者在数学上是不正确的。
或者说可以将为吗?我不能也不需要弄清楚运行时,也不需要改善任何事情,但是我需要知道这是否是您如何在现实中描述您的功能。
有多个表示法,例如或等。我想知道,实际上是否存在诸如或,或者在数学上是不正确的。
或者说可以将为吗?我不能也不需要弄清楚运行时,也不需要改善任何事情,但是我需要知道这是否是您如何在现实中描述您的功能。
Answers:
我想知道,现实中是否存在诸如或,或者这些变化在数学上是不正确的。
是的,或是有效的变体。
但是,如果您根本看不到它们,那么您将很少看到它们,尤其是在最终结果中。原因是 是 。同样, 为 。对于初学者而言,这可能令人惊讶。但是,这些相等性或多或少是引入大表示法的原因,以掩盖通常难以确定且相对微不足道的可乘常数。
难道是一个正确的说,它是能够提高的?
这不是在所有的改进,如果一种算法的时间复杂度从改变到或从以,因为是而是。所以说时间复杂度从到是不正确的。当然,可以说算法的时间复杂度从提高到是正确的。
练习1.证明。
练习2。证明。
练习3.显示。
不必将Big Oh符号视为神秘的魔术,而必须咨询巫师询问您是否可以做某事,而应查看其定义。遵守定义,然后做任何您需要完成的工作。
从本质上讲,Big-O符号不是一种算法运行多长时间的描述。也没有描述算法执行多少步骤,代码行或比较。当用于描述算法如何随输入数量缩放时,它非常有用。
。对数以2为底,但这没关系-关系的核心是将列表乘以一个常数,只会给时间加上一个常数。
我很高兴看到许多这样的答案基本上都在告诉您自己通过阅读Big-O的定义得出这个结论。但是这种直觉上的理解使我花了相当长的时间来回想一下,所以我尽可能简单地向您展示。
查看O(f(n))的定义,您会看到例如O(2n ^ 2)和O(n ^ 2)完全相同。将算法从5n ^ 2更改为3n ^ 2操作可提高40%。从O(5n ^ 2)更改为O(3n ^ 2)实际上没有任何变化,它们是相同的。
再次,读取O(f(n))的定义。