嵌套for循环的运行时间

smo*_*hie 2 algorithm analysis

1a.)循环在下面,我想找到它的运行时间.这是循环

sum = 0
for (int i =0; i < N; i++){
    for(int j = i; j >= 0; j--)
          sum ++
Run Code Online (Sandbox Code Playgroud)

第一个for循环在O(n)中运行很容易,但对于第二个我认为它也在O(n)时间运行,因为无论何时j = i,这个循环将运行i次.

所以我写下了它的运行时间为O(n ^ 2).

1B.)此外,当有问题要求"theta界限"时,有人还可以解释是什么意思吗?

Jon*_*eet 7

好吧,在这里计算出确切的循环迭代次数非常简单.你得到1 + 2 + 3 + 4 + 5 + 6 + 7 + ... + N.

总和为N(N + 1)/ 2,所以是的,算法复杂度为O(N 2).

我不能说我遇到了这个界限......但是关于big-O表示法维基百科页面提到了它,所以这可能是一个合理的起点.