java - 如何在 big-o 中找到算法的运行时间

标签 java algorithm performance runtime big-o

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。

由于 rowscolumns 变量的大小会增加,并且每个循环都会遍历行,然后遍历循环内的列,我可以这样说吗函数将在 O(n^2) 内运行?

我对算法的整体复杂性还很陌生,希望对此有一些意见。非常感谢。

最佳答案

直接回答你的代码: What is the Big-O of a nested loop, where number of iterations in the inner loop is determined by the current iteration of the outer loop?

N 用于一个循环,所以两个嵌套 = N^2,等等。如果嵌套循环中有 2 条指令,实际上是 2N^2,但是乘以 2 是有用的,所以 N^2无论如何。

关于java - 如何在 big-o 中找到算法的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37176543/

相关文章:

JavaFX - 并发和更新标签

java - 我可以使用 xml 连接 spring @stereotype bean吗

algorithm - Intersection of n rectangles - 正好有 k 个矩形相交的区域的最大数量

algorithm - 将平面列表加权为正态分布

java - 猜数字游戏无法运行

java - jsp 不显示 spring validator 错误

c# - 15 拼图随机播放方法问题

javascript - 什么是用于选择特定 div 中具有特定类的 anchor 元素的 jQuery 选择器

python - 在numpy数组中查找非零之前的零数

php - 没有任何 PHP 的 .php 文件会传递给解释器吗?