该循环的三倍的复杂性
Complexity of this triple for loop?
for(i=1;i<=2237;i++)
{
for(j=i+1;j<=2237;j++)
{
for(k=1;k*(i*i+j*j)<=5000000;k++)
{
a[k*(i*i+j*j)]=1;
}
}
}
这里的5 * 10^6可以假定为n,而2237近似为SQRT(n)。我能够找出外部2循环的复杂性,这是最内向的循环使我感到困惑。
如果输入决定了最内在循环中的迭代次数(如您所描述的那样):
外圈运行sqrt(N)
次,然后中间环在平均 sqrt(N)/2
上运行,外部环的每次迭代。然后,内环在中间环的每次迭代中运行n次。
so .... sqrt(N) * sqrt(N)/2 * N == (N-Squared / 2)
因此O(N-Squared)
如果输入决定了最外部环中的迭代次数,以使最内在的循环迭代计数始终是外部相互作用计数的平方值:
`N * N/2 * N-Squared = N**4 (N to the power of 4)`. Hence, `O(N**4)`
相关文章:
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 将两个数组中的差异记录在第三个数组中
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 将数字转换为字母(例如:123 转换为一二三)
- 具有未知值时的时间复杂性
- 如何从给定字符串中删除第二次和第三次出现的$
- 我想知道长双倍和双倍之间的区别
- 在更改for循环的第三部分后,未使用for循环结果
- 关联容器的下界复杂性:成员函数与非成员函数
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- <T> 通过模板化运算符重载将 std::complex 乘以双倍
- 使用堆查找第K个最大元素的时间复杂性
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 该循环的三倍的复杂性
- 打印像素值,但图像重叠.图像是其应有大小的三倍
- 为什么我的C++代码比LeetCode上的C代码慢三倍
- 创建一个 c++ 程序,根据整数是奇数还是偶数,将整数数增加一倍和三倍
- 如果是前两位数的三倍积
- OpenCV在一帧中显示三倍的图像