Questions tagged «big-o»

Big-O表示法用于表示渐近上限。它描述了算法的相关时间或空间复杂度。Big-O分析提供了问题难度的粗略且简化的估计。


8
下界和紧密界有什么区别?
以此为参考 答案,Theta(紧束缚)是什么? Omega是下限,很容易理解,算法可能需要最少的时间。我们知道Big-O是上限,这意味着算法可能花费的最长时间。但是我对Theta一无所知。
99 big-o 

11
Euclid算法的时间复杂度
我很难确定Euclid最大的公分母算法的时间复杂度。该伪代码算法为: function gcd(a, b) while b ≠ 0 t := b b := a mod b a := t return a 它似乎取决于a和b。我的想法是时间复杂度为O(a%b)。那是对的吗?有没有更好的方法可以写呢?

7
大O(logn)日志是e吗?
对于二进制搜索树类型的数据结构,我看到Big O标记通常记为O(logn)。在日志中使用小写的“ l”,这是否意味着以自然对数描述的对数为e(n)?很抱歉这个简单的问题,但是我一直很难区分不同的隐式对数。

3
python set操作的时间复杂度?
Big O表示法中每个python设置操作的时间复杂度是多少? 我正在将Python的set类型用于对大量项目的操作。我想知道每个操作的性能如何受到集合大小的影响。例如,添加,并测试成员资格: myset = set() myset.add('foo') 'foo' in myset 谷歌搜索并没有占用任何资源,但是合理地考虑了Python的set实现的时间复杂性是合理的。 如果它存在,到一些链接像这将是巨大的。如果那里没有这样的东西,那么也许我们可以解决吗? 用于查找所有设置操作的时间复杂度的额外标记。

12
实现一个队列,其中push_rear(),pop_front()和get_min()都是恒定时间操作
我遇到了这个问题: 实现一个队列,其中push_rear(),pop_front()和get_min()都是恒定时间操作。 我最初想到的是,使用最小堆数据结构对get_min()具有O(1)复杂度。但是push_rear()和pop_front()将为O(log(n))。 有谁知道实现具有O(1)push(),pop()和min()的队列的最佳方法是什么? 我对此进行了搜索,并想指出这个Algorithm Geeks线程。但是似乎所有解决方案都没有一个遵循恒定时间规则,这三个方法分别是push(),pop()和min()。 感谢所有的建议。




5
了解Dijkstra算法的时间复杂度计算
据我了解,我使用下面给出的邻接表将Dijkstra算法的时间复杂度计算为big-O表示法。它没有按预期的方式出现,这使我逐步了解了它。 每个顶点可以连接到(V-1)个顶点,因此每个顶点的相邻边数为V-1。假设E表示连接到每个顶点的V-1边。 在最小堆中查找和更新每个相邻顶点的权重为O(log(V))+ O(1)或O(log(V))。 因此,从上面的步骤1和步骤2开始,更新顶点的所有相邻顶点的时间复杂度为E *(logV)。或E*logV。 因此,所有V个顶点的时间复杂度为V *(E * logV)即O(VElogV)。 但是Dijkstra算法的时间复杂度为O(ElogV)。为什么?


5
为什么计算复杂度为O(n ^ 4)?
int sum = 0; for(int i = 1; i < n; i++) { for(int j = 1; j < i * i; j++) { if(j % i == 0) { for(int k = 0; k < j; k++) { sum++; } } } } 我不明白当j = i,2i,3i ...时,最后一个for循环运行了n次。我想我只是不明白我们是如何根据if声明得出这个结论的。 编辑:我知道如何计算所有循环的复杂性,除了为什么最后一个循环基于mod运算符执行i次...我只是不知道它是什么。基本上,为什么j%我不能升至i * …
50 java  big-o 
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.