![](/img/trans.png)
[英]Why is the time complexity of the brute solution of nearestPalindromic the square root of n?
[英]why is this n(square) complexity?
当有三个 for 循环时,为什么此代码的复杂度为 n^2? 你怎么知道代码的不同复杂性? 这是代码:
int size1= sc.nextInt();
int size2 = sc.nextInt();
int value=0;
for(int k=0;k<size1;k++)
{
value++;
//5 times
for(int x=0;x<size2;x++)
{
value++;
//15 times
for(int i=0;i<x;i++)
{
value++;
//15 times
}
}
}
System.out.println(value);
}
如果我们假设 n=size1=size2,你的代码的复杂度是O(n^3)
。
如果只有 size2=n 和 size1=k(小常数),复杂度是 O(kn^2),如果我们只考虑变量 n 大的话,就是 O(n^2)。
我认为您的意思是复杂性而不是效率。 这是 O(n^2) 的原因是它具有二次复杂性,因为第三个循环使用第二个变量。
更多信息在这里。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.