2 什么是伪多项式时间?它与多项式时间有何不同? 什么是伪多项式时间?它与多项式时间有何不同?一些在伪多项式时间内运行的算法具有O(nW)(用于0/1背包问题)或O(√n)(用于试验除法)等运行时;为什么那不算作多项式时间? 100 algorithm big-o time-complexity
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)。那是对的吗?有没有更好的方法可以写呢? 97 algorithm big-o time-complexity iteration
7 大O(logn)日志是e吗? 对于二进制搜索树类型的数据结构,我看到Big O标记通常记为O(logn)。在日志中使用小写的“ l”,这是否意味着以自然对数描述的对数为e(n)?很抱歉这个简单的问题,但是我一直很难区分不同的隐式对数。 96 math binary-tree complexity-theory big-o
3 python set操作的时间复杂度? Big O表示法中每个python设置操作的时间复杂度是多少? 我正在将Python的set类型用于对大量项目的操作。我想知道每个操作的性能如何受到集合大小的影响。例如,添加,并测试成员资格: myset = set() myset.add('foo') 'foo' in myset 谷歌搜索并没有占用任何资源,但是合理地考虑了Python的set实现的时间复杂性是合理的。 如果它存在,到一些链接像这将是巨大的。如果那里没有这样的东西,那么也许我们可以解决吗? 用于查找所有设置操作的时间复杂度的额外标记。 79 python data-structures set complexity-theory big-o
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()。 感谢所有的建议。 76 algorithm data-structures queue big-o
8 为什么即使哈希函数可能不是O(1),也要通过键O(1)访问字典的元素? 我了解了如何通过密钥访问您的收藏集。但是,哈希函数本身在幕后有很多操作,不是吗? 假设您有一个非常有效的很好的哈希函数,它仍然可能需要执行许多操作。 可以解释吗? 75 c# dictionary hashtable big-o
1 多集,映射和哈希映射的复杂性 我想知道在以下情况下STL多集,映射和哈希映射类的Big O表示法的复杂性: 插入条目 访问条目 检索条目 比较条目 72 c++ complexity-theory big-o
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)。为什么? 71 algorithm graph big-o time-complexity dijkstra
6 O(n)和O(log(n))之间的区别-哪个更好,O(log(n))到底是什么? 这是我关于数据结构的第一门课程,我们每讲一门讲座/ TA讲座O(log(n))。这可能是一个愚蠢的问题,但是如果有人可以向我确切解释这是什么意思,我将不胜感激! 70 algorithm data-structures complexity-theory big-o logarithm
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