所以我一直在尝试处理Big Oh计算。我觉得我已经掌握了基础知识,但我对这看起来非常简单的计算感到难过。因此,如果下面的计算有一个很大的O(n log n)(我真的希望我至少做到了这一点),那么改变循环次序对复杂性的影响是什么?非常感谢你的时间。
int ONLogN(int N) //O(n log n)
{
int iIterations = 0;
for (int i = 0; i < N; ++i)
{
++iIterations;
for (int j = 1; j < N + 1; j *= 2)
++iIterations;
}
return iIterations;
}
int WhatBigOhIsThis(int N) //???
{
int iIterations = 0;
for (int j = 1; j < N + 1; j *= 2)
{
++iIterations;
for (int i = 0; i < N; ++i)
++iIterations;
}
return iIterations;
}
答案 0 :(得分:1)
两个循环上的索引变量是独立的,因此产生的复杂性必然相同。
答案 1 :(得分:0)
您仍在循环以获得相同数量的迭代。更改循环的顺序对复杂性没有影响