我知道,O(n lg n)
和O(n^2)
,(n lg n)
在n
足够高时会更小。
但是O(n^2)
会对(n lg n)
进行正确评估吗?
O(n lg n)
和O(n^2)
存在很大差异,因此我不确定O(n^2)
是(n lg n)
的最佳答案"最坏的情况"
答案 0 :(得分:6)
回答标题问题(原来是:你能说nlgn等于O(n ^ 2)吗?):
不,您不能nlgn
是功能而O(n^2)
是设置。
从正文回答你的问题:
嗯,是的,nlogn
是O(n^2)
...但请勿尝试使用O(n^n)
回答考试中的每个问题。这不是他们所要求的。 Big-O表示法不用于给出最佳答案。这只是提供一些信息的一种方式。
根据维基百科:
Big O表示法是一种数学符号,用于描述当参数趋向于特定值或无穷大时函数的限制行为。它是Paul Bachmann,Edmund Landau和其他人发明的一系列符号的成员,统称为Bachmann-Landau符号或渐近符号。
答案 1 :(得分:1)
所以n lg n = O(n ^ 2)(=符号是滥用符号,但是常见的滥用);但是说n lg n = O(n lg n)也是正确的,从某种意义上来说,它是一个更具限制性的上界。
同样,当您找到下限时,首选项是您可以找到的下限。真正快乐的情况是,你可以找到足够低的上限,并且下限足够高,找到一个Theta界限。