Computer science 什么是大O符号?

Computer science 什么是大O符号?,computer-science,big-o,Computer Science,Big O,可能重复: 我知道大O符号用于评估算法的效率,但我不明白你们是如何理解大O符号的,或者一个算法的效率到底有多高。有人能解释一下大O符号的基本原理吗?谢谢。很好地解释了什么是大O符号以及如何使用它。描述了函数的限制行为 对于计算机科学来说,通常情况下,您可以使用它来显示算法在获得更大数据集时的伸缩性。例如,集合中的查找通常会有所不同,并根据集合的类型使用大O表示法进行描述。.NET Framework中的有一个属性,其文档记录如下: 获取或设置此属性的值接近O(1)操作 这基本上就是说,无论您向

可能重复:

我知道大O符号用于评估算法的效率,但我不明白你们是如何理解大O符号的,或者一个算法的效率到底有多高。有人能解释一下大O符号的基本原理吗?谢谢。

很好地解释了什么是大O符号以及如何使用它。

描述了函数的限制行为

对于计算机科学来说,通常情况下,您可以使用它来显示算法在获得更大数据集时的伸缩性。例如,集合中的查找通常会有所不同,并根据集合的类型使用大O表示法进行描述。.NET Framework中的有一个属性,其文档记录如下:

获取或设置此属性的值接近O(1)操作

这基本上就是说,无论您向集合中添加多少项,都会在固定的时间内取出一项。另一方面,A将其描述如下:

该方法执行线性搜索;因此,该方法是一个O(n)操作,其中n是Count

这基本上是说,当你添加更多的项目时,算法将在线性时间内变得更慢。如果你放入1000个项目,平均大约需要10倍于包含100个项目的列表的长度,以此类推。

佩奇似乎很清楚地向我解释了这一点

本质上,这是一种快速准确地评估算法性能特征的便捷方法。不管是在最坏的情况下还是在平均情况下,算法运行的速度有多快。在最坏或平均情况下,它使用了多少空间。有时更有用的是算法如何对许多项目执行,这称为摊销分析


该符号的基本特征是,当
n
变大时,它会忽略变得不相关的术语。例如,当
n
变大
n^2+2n
时,
2n
变得不相关。这将是
O(n^2)

与[大O的纯英语解释]()相同。大括号中描述的函数越强大,例如O(n^2)中的n^2,算法越复杂。只需输入n的数字。假设3,那么O(n^2)=O(9)比O(2n)=O(6)所描述的算法复杂度更高。您建议的页面非常有用:我也一直在尝试理解这个概念。