大O记法是一种比较算法的方法。它通过计算需要多少内存和完成需要多少时间来比较它们。

大O记号法经常用于识别一个问题的复杂程度,也称为问题的复杂度等级。数学家保罗-巴赫曼(Paul Bachmann,1837-1920)在1896年出版的《分析法》(Analytische Zahlentheorie)一书的第二版中,是第一个使用这种符号的人。埃德蒙-兰道(Edmund Landau,1877-1938)使这种记法流行起来。因此,当人们谈论兰道符号时,他们会提到这个符号。

大O记数法是以"函数的阶数"来命名的,它指的是函数的增长。大O记数法是用来寻找函数增长速度的上界(可能的最高量),也就是说它计算出将输入变成输出所需的最长时间。这意味着在最坏的情况下,每次都会走最长的路线,可以按照算法所能花费的时间来分组。

大O是一种表达式,它可以找到最坏情况下的运行时间,显示一个算法的效率,而不必在计算机上运行程序。这也很有用,因为不同的计算机可能有不同的硬件,因此需要不同的时间来完成它。由于Big O总是假设最坏情况,它可以显示出一致的速度测量:无论你的硬件如何,O ( 1 ) {\displaystyle O(1)}{\displaystyle O(1)}总是要比O ( n !){\displaystyle O(n!)}完成得更快{\displaystyle O(n!)},因为它们的效率水平不同。