所以我一直在尝试处理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;
}
两个循环上的索引变量是独立的,因此由此产生的复杂性必然相同。
您仍在循环进行相同次数的迭代。更改循环顺序不会影响复杂性