我更喜欢尽可能少的正式定义和简单的数学。


当前回答

什么是“大O”笔记的明确英语解释?

在“大O”中,意思是“命令”(或准确地说“命令”),所以你可以从字面上得到它的想法,它是用来命令一些东西来比较它们。

“大O”做两件事:估计你的计算机适用于完成一个任务的方法的步骤多少。 方便这个过程与其他人进行比较,以确定它是否好? “大O”通过标准化评分实现上述两件事。 有七个最常用的评分O(1),这意味着你的计算机得到一个任务完成1步,这是很好的, 订单 No.1 O(logN), 平均值

此分類上一篇

请注意订单在线结束,只是为了更好地理解。有超过7个评分,如果所有可能性考虑。

概述“大O”描述算法的性能,并评估它;或者正式处理它,“大O”分类算法并标准化比较过程。

其他回答

有几个很棒的答案已经发布,但我希望以不同的方式做出贡献. 如果你想看到发生的一切,你可以假设一个编辑器可以在 ~1sec 中完成近10^8操作. 如果输入在10^8中,你可能想设计一个算法,以线性方式运作(如一个不需要运行)。

此分類上一篇

大 O 评级是描述算法将运行多快的方式,因为有意数量的输入参数,我们将称之为“n”。在计算机科学中是有用的,因为不同的机器以不同的速度运行,简单地说算法需要 5 秒,不会告诉你很多,因为虽然你可能运行一个系统与 4.5 GHz 八核处理器,我可能运行一个系统。

仅仅是以快速而简单的方式表达一个算法的复杂性。 大 O 评分存在,以解释任何算法的最佳、最糟糕和平均案例时间复杂性。

否则,与这些功能工作是非常困难的,因为它们倾向于:

有太多的泡沫 - 像二进制搜索这样的算法通常运行得更快,因为序列分区工作得很好,因为 n = 2k − 1 的尺寸,因为序列分区工作得更快。 这个细节并不特别重要,但它警告我们,任何算法的准确时间复杂性功能可能非常复杂,如图2.2 所示,有很少的上下泡沫。

https://mimoza.marmara.edu.tr/~msakalli/cse706_12/SkienaTheAlgorithmDesignMan ual.pdf

大 O 评分是描述一个算法的空间或运行时间的上限的一种方式. n 是问题的元素数量(即序列的尺寸,树上的节点数量等) 我们有兴趣描述运行时间,因为 n 变得大。

要说二进制搜索有运行时间的O(登录)是说有某些恒定的c,你可以增加登录(n)通过它将总是比运行时间的二进制搜索。

换句话说,g(n)是你的算法的运行时间,我们说g(n) = O(f(n))当g(n) <=c*f(n)当n > k,当c和k是某些恒定的。

大 O 是算法使用时间/空间的尺寸,与其输入的尺寸相比。

如果一个算法是O(n),那么时间/空间将与其输入相同的速度增加。

如果一个算法是O(n2)则时间/空间增加以其输入的速度为方形。

等等等。