Java 你能帮我计算一下这个算法的时间复杂度吗?
有人能给我写信答复吗 例如,我知道for循环中的操作数是2N+2 以及count++中的操作数;是N吗 但是对于其他部分,时间复杂度是O2n。瓶颈是:Java 你能帮我计算一下这个算法的时间复杂度吗?,java,algorithm,big-o,time-complexity,complexity-theory,Java,Algorithm,Big O,Time Complexity,Complexity Theory,有人能给我写信答复吗 例如,我知道for循环中的操作数是2N+2 以及count++中的操作数;是N吗 但是对于其他部分,时间复杂度是O2n。瓶颈是: public static void complexityexample(int n) { int count = 0; int k = 1; for (int i = 0; i < n; i++) { for (int j = 0; j < k; j++) { coun
public static void complexityexample(int n) {
int count = 0;
int k = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
count++;
}
k *= 2;
for (int t = 0; t < n; t++) {
count++;
}
System.out.println(count);
}
}
最后的平等从何而来
请注意,下一个内部循环:
20 + 21 + 22 + ... + 2n-1 = 2n - 1
在渐近表示法方面不影响时间复杂度,因为它为i的每次迭代增加了时间,并且这很快被第一个内循环的指数行为所抑制
如果你想在最后计算count的值,它是第一个内循环的总和,如前所述是2n-1,第二个内循环是sum{n | for each i}=n2。时间复杂度是O2n。瓶颈是:
public static void complexityexample(int n) {
int count = 0;
int k = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < k; j++) {
count++;
}
k *= 2;
for (int t = 0; t < n; t++) {
count++;
}
System.out.println(count);
}
}
最后的平等从何而来
请注意,下一个内部循环:
20 + 21 + 22 + ... + 2n-1 = 2n - 1
在渐近表示法方面不影响时间复杂度,因为它为i的每次迭代增加了时间,并且这很快被第一个内循环的指数行为所抑制
如果你想在最后计算count的值,它是第一个内循环的总和,如前所述是2n-1,第二个内循环是sum{n | for each i}=n2。2^n+n*n
因为他们的主回路是
for (int t = 0; t < n; t++) {
2^n来自:
for (int i = 0; i < n; i++) {
n*n来自:
for (int j = 0; j < k; j++) {
count++;
}
2^n+n*n
因为他们的主回路是
for (int t = 0; t < n; t++) {
2^n来自:
for (int i = 0; i < n; i++) {
n*n来自:
for (int j = 0; j < k; j++) {
count++;
}
第一排1操作
2st第2行操作
第三排1+n+1+n=2N+2
4 2N+2
5N
7 N
92N+2
10N
131
是这样吗
经过所有的数学计算,最终结果是:14N^2+22N+11-运算。1行运算
2st第2行操作
第三排1+n+1+n=2N+2
4 2N+2
5N
7 N
92N+2
10N
131
是这样吗
经过所有的数学计算,最终结果是:14N^2+22N+11-运算。使用西格玛符号的精确方法是: 经经验验证: 当n=10时,总迭代次数为1123 当n=25时,总迭代次数为33555056 当n=50时,我需要永远执行,我必须将变量类型从int改为long
实际上,这种非多项式算法非常昂贵。使用西格玛表示法的精确方法是: 经经验验证: 当n=10时,总迭代次数为1123 当n=25时,总迭代次数为33555056 当n=50时,我需要永远执行,我必须将变量类型从int改为long
事实上,这种非多项式算法非常昂贵。forint t=0;这是一个错误,有forint t=0;t由于你有一个无限循环,我认为时间复杂性的问题是没有意义的。我已经格式化了你的代码,但是你有大量缺少的括号。这是你想要的吗?今后,请确保您的代码经过编译且清晰易读。@qcGold想添加一条评论:此网站应帮助您解决算法复杂性问题,在学校时确实帮助了我:forint t=0;这是一个错误,有forint t=0;t由于你有一个无限循环,我认为时间复杂性的问题是没有意义的。我已经格式化了你的代码,但是你有大量缺少的括号。这是你想要的吗?将来,请确保您的代码经过编译且清晰可读。@qcGold想添加一条评论:该网站应该帮助您解决算法复杂性问题,当然在学校时也帮助了我:这个答案是错误的,复杂性是n的指数大小,因为第一个内部循环-从0到k循环,对于i,k呈指数增长。这个答案是错误的,由于第一个内环从0循环到k,复杂度在n的大小上呈指数增长,而对于i,k呈指数增长。