题
嗨,我正在尝试了解按大O表示法表示的复杂性顺序是什么。我已经阅读了许多文章,甚至在这里对Big O的有用描述中,也找不到任何能确切解释“复杂性顺序”的内容。
我对大O的了解
我已经了解的部分。关于Big O表示法是,我们正在根据输入大小n的增长来衡量算法的时间和空间复杂度。我也了解某些排序方法对于O来说具有最佳,最坏和平均的情况,例如O(n),O(n ^ 2)等,并且n是输入大小(要排序的元素数)。
任何简单的定义或示例,将不胜感激,谢谢。
大O是要为某些功能的增长找到上限。请参阅Wikipedia上的正式定义http://en.wikipedia.org/wiki/Big_O_notation
因此,如果您有一个对大小数组进行排序的算法,n并且只需要恒定量的额外空间,并且需要完成(例如)2 n² + n步骤,那么您会说它的空间复杂度是O(n)或O(1)(取决于您计算的数量输入数组的大小与否)及其时间复杂度为O(n²)。
n
2 n² + n
O(n)
O(1)
O(n²)
仅知道这些O数字,您就可以大致确定n到达n + 100和/ 2 n或感兴趣的任何地方还需要多少空间和时间。这就是算法“扩展”的程度。
O
n + 100
2 n
更新资料
大O和复杂性实际上只是同一件事的两个术语。您可以说用“线性复杂度”代替O(n),用二次复杂度代替O(n²),等等。