我更喜欢尽可能少的正式定义和简单的数学。
当前回答
O(n2):被称为四方复杂性
1 件: 1 件 10 件: 100 件 100 件: 10,000 件
请注意,物品的数量增加了10个因素,但时间增加了102个因素。
O(n):被称为线性复杂性
1 件: 1 操作 10 件: 10 操作 100 件: 100 操作
这一次,元素的数量增加了10个因素,所以时间n=10,所以O(n)的规模因素是10。
O(1):被称为恒久复杂性
1 件: 1 操作 10 件: 2 操作 100 件: 3 操作 1000 件: 4 操作 10,000 件: 5 操作
他们降低了数学,所以它可能不是准确的n2或他们说它是什么,但这将是规模的支配因素。
其他回答
大 O 是一种代表任何函数的顶部界限的手段,我们通常使用它来表达一个函数的顶部界限,说明一个算法的运行时间。
Ex : f(n) = 2(n^2) +3n 是代表假设算法的运行时间的函数,Big-O 评级基本上给了这个函数的上限,即 O(n^2)。
这个评级基本上告诉我们,对于任何输入“n”的运行时间不会超过Big-O评级所表达的值。
此外,同意上述所有详细答案,希望这有助于!!!
什么是清晰的英语解释大O? 尽可能少的正式定义和简单的数学。
一个简单的英语解释需要Big-O评分:
当我们编程时,我们试图解决一个问题. 我们编码的称为算法. 大 O 评级允许我们以标准的方式比较我们算法的最糟糕的案例性能. 硬件特征随着时间的推移而变化,硬件的改进可以减少运行算法需要的时间。
英文片名 What Big O Notation 是:
不是所有的算法运行相同的时间,并且可以根据输入中的项目数量而变化,我们将称之为n. 基于这一点,我们将考虑最糟糕的案例分析,或者运行时间的上限,因为n 变得更大和更大。
从(源)可以读到:
大 O 评级根据其增长率定义函数:具有相同增长率的不同函数可以使用相同的 O 评级进行代表。
在计算机科学时间复杂性和空间复杂性理论中,人们可以认为大O评级是对时间和空间的某种最糟糕情况的算法的分类。
一个算法被称为采取线性时间/空间,或者O(n)时间/空间,如果其时间/空间复杂性是O(n)。
和 O(n log n) 如:
一个算法被称为在量子时间/空间中运行,如果T(n) = O(n log^k n)为某种积极的连续 k;线性时间/空间是 k = 1(来源)的情况。
此分類上一篇
我不确定我正在进一步贡献这个主题,但我仍然认为我会分享:我曾经发现这个博客帖子有几个非常有用的(也许非常基本的)解释和例子关于Big O:
通过例子,这有助于在我的<unk>子像<unk>子一样的喉<unk>中获得细微的基本,所以我认为这是一个相当下载10分钟的阅读,让你走在正确的方向。
大 O 是算法使用时间/空间的尺寸,与其输入的尺寸相比。
如果一个算法是O(n),那么时间/空间将与其输入相同的速度增加。
如果一个算法是O(n2)则时间/空间增加以其输入的速度为方形。
等等等。
推荐文章
- 找出质数最快的算法是什么?
- 圆线段碰撞检测算法?
- 求有向图中的所有循环
- JavaScript -从当前日期开始获取一周的第一天
- 如何比较两种颜色的相似/不同
- 有效的方法应用多个过滤器的熊猫数据框架或系列
- 哪些是遗传算法/遗传规划解决方案的好例子?
- 如何在O(n)中找到长度为n的无序数组中的第k大元素?
- 一个用于膨胀/收缩(抵消,缓冲)多边形的算法
- 我如何使用Node.js Crypto创建HMAC-SHA1哈希?
- 如何用动态规划确定最长递增子序列?
- 在c++程序中以编程方式检测字节序
- 理解递归
- 段树、区间树、二叉索引树和范围树之间有什么区别?
- 给定一个数字,找出下一个与原始数字具有完全相同的数字集的更高的数字