Java 显示函数的增长顺序

Java 显示函数的增长顺序,java,algorithm,performance,time-complexity,Java,Algorithm,Performance,Time Complexity,我有以下代码 int sum = 0; for (int i = 1; i <= n; i = i*2) { for (int j = 1; j <=n; ++j) { ++sum; } } 因为2^k是logn 该函数的增长顺序为nlogn,这是一个线性增长率 我在分析中是否做错了什么?如果我有任何错误,请告诉我,因为这让我很困惑。非常感谢。我想将此分析应用于更复杂的嵌套循环,但在此之前,我需要知道我做错了什么 更新:我花了很多时间试图

我有以下代码

int sum = 0; 
for (int i = 1; i <= n; i = i*2) 
{ 
   for (int j = 1; j <=n; ++j) 
   { 
       ++sum;
    }
}
因为2^k是logn

该函数的增长顺序为nlogn,这是一个线性增长率

我在分析中是否做错了什么?如果我有任何错误,请告诉我,因为这让我很困惑。非常感谢。我想将此分析应用于更复杂的嵌套循环,但在此之前,我需要知道我做错了什么


更新:我花了很多时间试图找出我的分析错误的原因。多亏了@YvesDaoust,我想我已经开始更了解它了

内部循环的主体执行n次

外部循环的主体是针对从1到n的所有2次幂执行的,其中大约有log2n次幂,因此具有全局复杂性

O(n.log(n))

不要发布大量代码图片。以文本形式发布代码。外部循环是logn,内部循环是lognn@PeterLawrey我知道外循环是logn,内循环是n,但我只是尝试创建一个分析,以便将其应用于更复杂的嵌套循环。有人能解释一下为什么我已经有-2个反对票吗?我正在寻求帮助,我在编辑这篇文章时尽了最大的努力。有什么问题?Stackoverflow用户看到什么都会投反对票?@Student这就是我的意思,通常你可以分析和识别某些类型的循环并将它们相乘。非常感谢你的帮助!我真的很感激。
O(n.log(n))