标签: complexity-theory

嵌套循环的时间复杂度

for(int i = 1; i < n; i = i ? 2){
     for(int j = 0; j < n; j++){
         if(i == j){
            for(int k = 0; k < n; k++){
               // Do something elementary
            }
         }else{
            // Do another elementary thing
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

我正在做一些运动,有人可以帮我弄清楚吗?上面的算法?我知道如果只是两个外部嵌套循环,时间复杂度应该是?(nlogn)。但我不知道如何对待 if-else 语句。提前谢谢了!

java complexity-theory loops if-statement time-complexity

0
推荐指数
1
解决办法
1966
查看次数

Java 中这个 PrimeNumbers 算法的时间复杂度

我是时间复杂度分析的新手...

如果有人能告诉我这是否是二次的,我将不胜感激。而且如果有更简单的方法可以使它成为o(1)。

public class PrimeNumbers {
    public boolean isPrime(int n) {
        boolean retValue = true;
        for (int i = 2; i < n; i++) {
            if (n % 2 == 0) {
                retValue = false;
            }
        }
        return retValue;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人可以分解它为什么是这样,它肯定会帮助我学习。:)

非常感谢!

java complexity-theory big-o primes time-complexity

0
推荐指数
1
解决办法
979
查看次数

任何上下文无关语言的补充是上下文无关的吗?

我阅读了多个答案,指出如果一种语言不是上下文无关的,那么它的补充就是上下文无关的(如果我错了,请纠正我)。相反的情况是这样吗?上下文无关语言的补充是上下文无关的吗?

complexity-theory context-free-grammar formal-languages context-free-language

0
推荐指数
1
解决办法
1万
查看次数

时间复杂度这个双循环

这段代码的时间复杂度是多少?

 for(int i = 1 ; i <= b ; ++i )
     for(int j = i ; j <= b ; j += i )
Run Code Online (Sandbox Code Playgroud)

c++ time complexity-theory

0
推荐指数
1
解决办法
68
查看次数

Karp 从 PARTITION 减少到 SUBSET SUM

PARTITION:给定一组正整数 A={a_1,...,a_n} 是否存在 A 的子集,其总和等于其补数的总和?

子集总和:给定一组正整数 A={a_1,...,a_n} 和另一个正整数 B,是否存在 A 的子集,使得它的总和等于 B?

我试图通过将 PART 减少到 SSUM 来证明如果 PARTITION 是 NP-complete,那么 SUBSET SUM 也是 NP-complete。

我的解决方案是:让 A={a1,...,an} 是一组正整数。然后,如果 A 在馈入 PART 时给出解 I={k1,...,km}(其中 k_i 是解子集成员的索引),那么我们构造 A'={a1,...an, S} 其中 S 是 {a_k1,a_k2,...,a_km} 的总和。A' 是 SSUM 的解。

我的问题是这只是一种方式,这意味着我们不能证明给定 A' 那么 A 是 PART 的解决方案。这是一个问题吗?我怎么能修改证明来覆盖它?

complexity-theory np-complete

0
推荐指数
1
解决办法
3404
查看次数

我可以总是使用 Map.equals() 比较两个 Immutable.Map 吗?计算复杂度真的不同于两个相同对象上的“===”?

我想了解 Immutable.equals() 的计算复杂度。我还没有通过阅读源代码清楚地找到我的答案,在网络讨论中也没有......

var obj1 = Immutable.Map({a: 1, b: 2, c: 'lot of entries'});
var obj2 = obj1.set('a', 1); 
Run Code Online (Sandbox Code Playgroud)

是否obj1.equals(obj2)会比较即使有平等的对象的每个关键?
如果它比较每个键,我最好将它与obj1===obj2.
在比较对象的每个键/值之前,Immutable 是否验证 === 相等?
在两个相同对象的情况下,了解 Immutable.equals() 和 === 运算符的计算复杂度之间是否存在很大差异会很有趣。

complexity-theory dictionary equals immutable.js

0
推荐指数
1
解决办法
2499
查看次数

是否存在非NP完全或P的NP问题?

我试图理解P,NP,NP-Complete和NP-Hard之间的关系.

我相信我开始理解一般的想法但是,我对这个问题感到困惑(见标题).

什么是这是一个问题的例子并不 P中时间内可解,是在P个时间核查的,但不是 NP完全?

如果我缺少一些理解,请填写我.

提前致谢

algorithm complexity-theory computer-science np-complete np

0
推荐指数
1
解决办法
266
查看次数

时间复杂度 - While 循环除以 2 并嵌套 for 循环

我陷入了即将到来的期中考试的复习问题,非常感谢任何帮助。

请看下面的函数:

void george(int n) {                
    int m = n;                              //c1 - 1 step
    while (m > 1)                           //c2 - log(n) steps
    {                       
        for (int i = 1; i < m; i++)         //c3 - log(n)*<Stuck here>
          int S = 1;                        //c4 - log(n)*<Stuck here>
        m = m / 2;                          //c5 - (1)log(n) steps
    }
}
Run Code Online (Sandbox Code Playgroud)

我陷入了内部 for 循环,因为每次迭代后 i 都在递增,并且 m 被除以 2。

如果 m = 100:第一次迭代 m = 100:循环将运行 100 次,i 迭代 100 次 + 1 用于最后一次检查 第二次迭代 m …

algorithm time complexity-theory big-o

0
推荐指数
1
解决办法
3273
查看次数

插入排序有 ?(n) 值吗?

众所周知,插入排序的最佳情况运行时间为n,最坏情况运行时间为n 2。在这种情况下,它是否具有很大的 theta 值?

algorithm complexity-theory big-o insertion-sort

0
推荐指数
1
解决办法
74
查看次数

为什么我的四叉树没有提高性能?

我有一个 boids 植绒模拟设置。它最初的工作原理是让每个 boid 循环遍历每个 boid,以便它们都不断地知道彼此的位置,以便判断它们是近还是远,但后来我切换到四叉树设计,以便 boid 只需要遍历实际上就在附近的 boid。然而,它几乎没有对模拟的 FPS 做出任何改进。就好像我还在遍历每一个 boid。

我的实现有什么错误吗?Repo 在这里,相关代码主要在 main.js、quadtree.js 和 boid.js 中。现场直播在这里

javascript complexity-theory quadtree boids

0
推荐指数
1
解决办法
59
查看次数