繁体   English   中英

简化O(nm)和O(n + m)时间复杂度

[英]Simplifying O(nm) and O(n + m) time complexity

如果我有一个以O(nm)时间复杂度运行的函数,将其简化为仅以O(n^2)时间复杂度运行是否是通常的惯例/可接受的做法? 例如,如下函数:

function funcOne(nArray, mArray) {
    for (var i = 0; i < nArray.length; i++) {
        for (var j = 0; j < mArray.length; j++) {

            ....

        }
    }
}

另外,如果我有一个以O(n + m)时间复杂度运行的函数,将其简化为只说它以O(n)时间复杂度运行是否是通常的惯例/可接受的做法? 例如,如下函数:

function funcOne(nArray, mArray) {
    for (var i = 0; i < nArray.length; i++) {

        ...

    }

    for (var j = 0; j < mArray.length; j++) {

        ...

    }
}

您提供的样本大约是O(N)复杂度,因为循环是按顺序执行的。 如果将一个循环放入另一个循环,则复杂度为O(N ^ 2)。 那n和m呢? 可以肯定的是,如果n和m之间存在关系,则通过n和m表示N会很棘手。 为简单起见,您可以将N视为n和m的平均值,即N =(n + m)/ 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM