java - 计算BigOh,迭代除法

标签 java algorithm big-o

有一个 HW 分配来计算 BigOh,但是我循环中的迭代给我带来了问题。

循环:

public static int fragment4b(int n){
    int sum = 0;
    for(int i = 1; i <= n*n; i++)         
        for(int j = i; j>= 1; j /=2)        
            sum +=j; 
}

我知道外循环有 O(n*n),但我觉得我的内循环有问题

所以我知道内循环有 O( (ln(i)/ln(2)) + 1 ) 这似乎是对的?或者我找错了树

最佳答案

内部循环完全重复sum+= j 语句enter image description here

外层循环重复 N^2 次。

所以操作总数是内循环从1到N^2的总和如下:enter image description here

那就是enter image description here

编辑:记录日志时,请发言。

关于java - 计算BigOh,迭代除法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19147740/

相关文章:

algorithm - 为什么 O(n log n) 大于 O(n)?

java - 了解大 O 符号 - 破解编码面试

java - 将具体对象列表转换为抽象类型

java - 发现以元素 'target-cpu-utilization' 开头的无效内容

algorithm - AI单文档搜索

c++ - 二分查找是否适合 OpenCL?

java - 如何从传递的对象中检索值?

java - Android 在没有 new mClass() 的情况下将类创建到单独的文件中...?

algorithm - 为什么我们不能使用 O-Notation 来比较算法?

algorithm - 时间复杂度和 Big-O 符号特定问题