容易嵌套循环的时间复杂度

时间:2018-04-10 13:30:24

标签: c time-complexity

for (int i=0; i<=N-1; ++i) {
    for (int j=i+1; j<=N; ++j) {
        SOME O(1) code;
    }
}

我认为这段代码是O(nlogn)时间复杂度,但我的朋友说这是O(n ^ 2)时间复杂度。哪一个是对的?我正在努力解决这个问题......

1 个答案:

答案 0 :(得分:3)

像这样理解:

当i = 0时,j将从1运行到N = N次
当i = 1时,j将从2运行到N = N-1次
....... 当i = N-1时,j将运行N = 1时间

因此,复杂度= 1 + 2 + 3 + .... + N = N *(N + 1)/ 2 =((N ^ 2)+ N)/ 2
如您所见,这是n ^ 2的顺序。