有人可以使用正确的符号来解释您分析此代码的运行时间吗?

时间:2018-10-20 18:22:42

标签: algorithm discrete-mathematics

for (int i=1; i<n; i=i*2)
{
    for (int i=0; i<n; i=i+1)
    {
        if (i<1000)
        cout << i << "\n";
    }
}

我不明白您为了求运行时间而用求和表达循环的感觉。您如何确定求和的界限?

1 个答案:

答案 0 :(得分:0)

仅查看每个循环执行的迭代次数。外循环从1到 n ,每次将 i 加倍,因此它记录了 2 n 个迭代。内部循环从0到 n 每次加1,所以它进行 n 次迭代。

将它们放在一起,您会得到O( n log n