Algorithm 大对数(ish)复杂度计算

Algorithm 大对数(ish)复杂度计算,algorithm,Algorithm,所以,我一直在尝试处理大型Oh计算。我觉得我已经掌握了基本的知识,但却被一个看似简单的计算难住了。因此,如果下面的计算有一个很大的O(n logn)(我真的希望我至少得到了正确的答案)那么改变循环的顺序对复杂性有什么影响?非常感谢您抽出时间 int ONLogN(int N) //O(n log n) { int iIterations = 0; for (int i = 0; i < N; ++i) {

所以,我一直在尝试处理大型Oh计算。我觉得我已经掌握了基本的知识,但却被一个看似简单的计算难住了。因此,如果下面的计算有一个很大的O(n logn)(我真的希望我至少得到了正确的答案)那么改变循环的顺序对复杂性有什么影响?非常感谢您抽出时间

    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;
    }
int ONLogN(int N)//O(N log N)
{
内部迭代=0;
对于(int i=0;i
两个循环上的索引变量是独立的,因此产生的复杂性必然是相同的。

您仍然在循环相同的迭代次数。更改循环的顺序不会影响复杂性

您认为这是什么?外环是O(对数N),内环是O(对数N),所以我让你们猜测组合结果。这几乎和“如果
a*b=x
,什么是
b*a
?”一样简单。问题:)我也会认为是O(对数N),但我怀疑自己,因为我在本周之前没有对big oh做过任何事情。非常感谢。我很欣赏这种简单的确认。它们可能有同样的复杂性,但对于32的输入,第一个函数产生224次迭代,而第二个198次。尽管如此,Big-Oh符号本身并不涉及实际数字。例如,您可以有两个不同的常量偏移量,并且复杂性仍然是n log(n)。事实上,这就是符号本身的意义。我开始欣赏这一点。再次感谢!