for (int i=1; i<n; i=i*2)
{
for (int i=0; i<n; i=i+1)
{
if (i<1000)
cout << i << "\n";
}
}
我不明白您为了求运行时间而用求和表达循环的感觉。您如何确定求和的界限?
答案 0 :(得分:0)
仅查看每个循环执行的迭代次数。外循环从1到 n ,每次将 i 加倍,因此它记录了 2 n 个迭代。内部循环从0到 n 每次加1,所以它进行 n 次迭代。
将它们放在一起,您会得到O( n log n )