Questions tagged «time-complexity»

算法的时间复杂度根据问题输入的大小来量化算法运行所需的时间。通常使用大O表示法来表示算法的时间复杂度,这会抑制乘法常数和低阶项。


30
如何检查数组是否在JavaScript中包含值?
找出JavaScript数组是否包含值的最简洁,最有效的方法是什么? 这是我知道的唯一方法: function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } 有没有更好,更简洁的方法来实现这一目标? 这与Stack Overflow问题密切相关。在JavaScript数组中查找项目的最佳方法?它解决了使用数组查找对象的问题indexOf。

30
O(log n)到底是什么意思?
我正在了解Big O Notation运行时间和摊销时间。我理解O(n)线性时间的概念,这意味着输入的大小会成比例地影响算法的增长...例如,二次时间O(n 2)等也是如此。 ,例如乘数为O(n!)的排列生成器,并通过阶乘增长。 例如,以下函数为O(n),因为该算法与输入n成正比增长: f(int n) { int i; for (i = 0; i < n; ++i) printf("%d", i); } 同样,如果存在嵌套循环,则时间将为O(n 2)。 但是O(log n)到底是什么?例如,说一个完整的二叉树的高度为O(log n)是什么意思? 我确实知道(也许不是很详细)什么是对数,即:log 10 100 = 2,但是我不明白如何用对数时间来识别一个函数。

29
如何配置Python脚本?
欧拉计画和其他编码竞赛经常有最长的运行时间,或者人们吹嘘他们的特定解决方案的运行速度。使用Python时,有时这些方法有些繁琐-即向中添加计时代码__main__。 剖析Python程序需要花费多长时间的好方法是什么?

9
如何找到算法的时间复杂度
问题 如何找到算法的时间复杂度? 在发布SO问题之前我做了什么? 我经历了这个,这个和许多其他链接 但是,在任何地方我都无法找到关于如何计算时间复杂度的清晰直接的解释。 我知道什么 ? 说一个简单的代码如下: char h = 'y'; // This will be executed 1 time int abc = 0; // This will be executed 1 time 说一个像下面这样的循环: for (int i = 0; i < N; i++) { Console.Write('Hello World !'); } int i = 0; 这将仅执行一次。时间实际上是计算到的,i=0而不是声明的。 …



12
斐波那契数列的计算复杂度
我了解Big-O表示法,但是我不知道如何为许多函数计算它。特别是,我一直在尝试找出Fibonacci序列的朴素版本的计算复杂性: int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } 斐波那契数列的计算复杂度是多少,如何计算?



5
2 ^ n和n * 2 ^ n是否具有相同的时间复杂度?
我发现的有关时间复杂度的资源尚不清楚何时可以忽略时间复杂度方程式中的术语,尤其是对于非多项式示例。 对我来说很明显,给定形式为n 2 + n + 1的东西,后两项是无关紧要的。 具体来说,给定两个分类2 n和n *(2 n),第二个的顺序与第一个相同吗?那里的附加n乘数有关系吗?通常,资源只是说x n呈指数形式并且增长得更快...然后继续前进。 我能理解为什么2 n不会超过n,但是为什么不将它们加在一起,所以在比较这两个方程时就显得尤为重要,事实上,它们之间的差总是n的因数,至少可以说这很重要。

15
Java哈希图真的是O(1)吗?
我已经看到了一些关于Java哈希图及其O(1)查找时间的有趣声明。有人可以解释为什么会这样吗?除非这些哈希图与我购买的任何哈希算法有很大不同,否则必须始终存在包含冲突的数据集。 在这种情况下,查找将O(n)不是O(1)。 有人可以解释他们是否为 O(1),如果是,他们如何实现这一目标?


7
为什么DFS和BFS的时间复杂度为O(V + E)
BFS的基本算法: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex 所以我认为时间复杂度是: v1 + (incident edges) + v2 + (incident edges) + .... + vn + (incident edges) v顶点1到哪里n 首先,我所说的正确吗?其次,这是如何的O(N + E),以及关于其原因的直觉将非常好。谢谢

19
最大单笔销售利润
假设我们得到了一个由n个整数组成的数组,它们表示一天中的股票价格。我们希望找到一对(buyDay,sellDay) ,与buyDay≤sellDay,例如,如果我们买了股票buyDay卖了上sellDay,我们将最大限度地提高我们的利润。 显然,有一个O(n 2)解决方案,可以尝试所有可能的对(buyDay,sellDay),并从所有对中获取最好的对。但是,是否有更好的算法,也许可以在O(n)时间内运行?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.