public void do() {
for (int i = 0; i < rows; i++)
for (int j = 0; j < columns; j++)
// do something
for (int i = 1; i < rows - 1; i += 2)
for (int j = 1; j < columns - 1; j += 2) {
// do something
for (int i = 50; i > 0; i--)
// do something
for (int i = 1; i < rows - 1; i++)
for (int j = 1; j < columns - 1; j++)
// do something
}
在这种情况下,行和列将相等:
行数 = (大小 * 10) + 1;
列 = 行 + 10;
其中 size
(n) 为 1、2、4 或 8。
由于 rows
和 columns
变量的大小会增加,并且每个循环都会遍历行,然后遍历循环内的列,我可以这样说吗函数将在 O(n^2) 内运行?
我对算法的整体复杂性还很陌生,希望对此有一些意见。非常感谢。
最佳答案
N 用于一个循环,所以两个嵌套 = N^2,等等。如果嵌套循环中有 2 条指令,实际上是 2N^2,但是乘以 2 是有用的,所以 N^2无论如何。
关于java - 如何在 big-o 中找到算法的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176543/