什么是大O符号?

可能重复:
Big O的纯英文解释

我知道Big O符号用于评估算法的有效性,但我不明白你如何阅读Big O符号或算法的效率如何。 有人可以解释大O符号的基础吗? 谢谢。


“大O”符号的简单英文解释是什么? 是Big-O符号的一个很好的解释,以及如何使用它。


本页面对我来说很清楚。

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

符号的基本特征是,当n变大时,它遗漏了不相关的术语。 例如,当n变大n^2 + 2n2n变得无关紧要。 这将是O(n^2)


Big O Notation描述了函数的限制行为。

对于计算机科学而言,通常,您可以使用它来显示算法如何获得更好的数据。 例如,集合中的查找通常会有所不同,并且根据集合的类型使用Big-O表示法进行描述。 .NET框架中的Dictionary<T,U>具有一个Item属性,其记录如下:

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

基本上说,无论您将多少物品添加到集合中,都可以在一段时间内完成一件物品。 另一方面, List<T>描述其Contains方法如下:

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

这基本上说,随着添加更多项目,算法在线性时间内会变慢。 如果您放入1000件物品,平均需要大约10倍的时间作为包含100件物品的清单等。

链接地址: http://www.djcxy.com/p/6751.html

上一篇: What is Big O Notation?

下一篇: Why is sorting a string O(n log n)?