java - 嵌套循环递归的时间复杂度/大 o 表示法

标签 java time-complexity big-o nested-loops

我正在查看以下代码

public class Solution {
    public boolean judgeSquareSum(int c) {
        for (long a = 0; a * a <= c; a++) {
            for (long b = 0; b * b <= c; b++) {
                if (a * a + b * b == c)
                    return true;
            }
        }
        return false;
    }
}

作者指出这段代码的时间复杂度是 √c。我不明白的是如何。

假设我们给出一个 c=20 的例子。那么代码将运行 15 次 √20=4.47

最佳答案

给定的代码片段是 O(n)Ω(√n),这意味着规定的时间复杂度只是最佳情况。

enter image description here

*对数垂直轴

关于java - 嵌套循环递归的时间复杂度/大 o 表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59908887/

相关文章:

java - 获取一行 HBase 的特定列族中的列

java - 模糊 'StringIndexOutOfBoundsException"

arrays - 在优于 O(N*M) 的时间内找到数组中多个区间的最小元素

java - 从 ArrayDeque 获取元素的时间复杂度

algorithm - 经典 Cracking the Coding 面试题的运行时间 a^3 + b^3 = c^3 + d^3?

java - List remove(Object object) 何时以及为何返回 false

java - 模式匹配 Java 正则表达式 - "One-or-more"运算符

algorithm - 寻找循环的复杂性

algorithm - 字符串排列的时间复杂度

data-structures - 为什么散列和 BST 的复杂性不考虑处理 key 字节所需的时间?