Big Oh对数(ish)复杂度计算

时间:2012-04-27 16:48:22

标签: algorithm

所以我一直在尝试处理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;
    }

2 个答案:

答案 0 :(得分:1)

两个循环上的索引变量是独立的,因此产生的复杂性必然相同。

答案 1 :(得分:0)

您仍在循环以获得相同数量的迭代。更改循环的顺序对复杂性没有影响