我一直在学习有关大O表示法的更多信息,以及如何根据算法编写方式对其进行计算。我遇到了一组有趣的“规则”,用于计算算法“大O”表示法,我想看看自己是在正确的轨道上还是在正确的道路上。
大O表示法:N
function(n) {
For(var a = 0; i <= n; i++) { // It's N because it's just a single loop
// Do stuff
}
}
大O表示法:N 2
function(n, b) {
For(var a = 0; a <= n; a++) {
For(var c = 0; i <= b; c++) { // It's N squared because it's two nested loops
// Do stuff
}
}
}
大O标记:2N
function(n, b) {
For(var a = 0; a <= n; a++) {
// Do stuff
}
For(var c = 0; i <= b; c++) { // It's 2N the loops are outside each other
// Do stuff
}
}
大O符号:NLogN
function(n) {
n.sort(); // The NLogN comes from the sort?
For(var a = 0; i <= n; i++) {
// Do stuff
}
}
我的示例和后续符号正确吗?我还应该注意其他符号吗?
2N
大-O表示法之类的东西。