小编Nic*_*ert的帖子

嵌套 for 循环的复杂性

我正在尝试使用 Big O 表示法计算出我的算法的时间,但我找不到关于它的非常清楚的解释。

基本上,我的算法包括将新数组与“父”数组中的所有其他数组进行比较。

为此,我有一个 for 循环,它迭代父数组中的所有元素,寻找一个看起来像新创建的数组的数组。

这是代码:

bool AlreadyExistingArray(Array array)
{
    bool areEqual = true;
    foreach (Array a in arrayEntries)
    {
        if (a.count != array.count)
            continue;

        foreach (int i in array)
        {
            if (!a.contains(i))
            {
                areEqual = false;
                break;
            }
        }
        if (areEqual)
        {
            areEqual = false;
            foreach (int i in a)
            {
                if (!a.contains(i))
                {
                    areEqual = false;
                    break;
                }
            }
        }
    }
    return areEqual;
}
Run Code Online (Sandbox Code Playgroud)

我知道每个 for 循环都应该是 O(n),但是,复杂性是否应该组合?由于我正在处理不同大小的数组,因此我很确定不能将复杂性视为 O(n^2)。

希望我说清楚了!否则,让我知道,我会尝试进一步澄清。

编辑:改变算法。

arrays algorithm big-o time-complexity

4
推荐指数
1
解决办法
3455
查看次数

标签 统计

algorithm ×1

arrays ×1

big-o ×1

time-complexity ×1