如果我有一个以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++) {
...
}
}
答案 0 :(得分:-1)
您提供的样本与O(N)复杂性有关,因为循环是按顺序执行的。如果你把一个循环放到另一个循环中,那就是O(N ^ 2)复杂度。那么n和m呢?当然,如果n和m之间存在关系,则通过n和m表示N可能是一件棘手的事情。为简单起见,您可以将N视为n和m的平均值,即N =(n + m)/ 2