[英]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.