BIG-O notation 이란?
시간복잡도에서의 BIG O
O(1)
function AddUpTo(num) {
return num * (num + 1) / 2;
}
var time1 = performance.now();
AddUpTo(1000000000);
var time2 = performance.now();
console.log(`걸린 시간: ${(time2 - time1) / 1000}`); // 0.00009
O(N)
let total = 0;
for(let i = 1; i <= num; i++){
total += i
}
return total
}
var t1 = performance.now();
AddUpTo(1000000000);
var t2 = performance.now();
console.log(`걸린 시간: ${(t2 - t1) / 1000}`) // 0.901
공간복잡도에서의 BIG O
O(1)
function logAtMost10(n) {
for (var i = 1; i <= Math.min(n, 10); i++) {
console.log(i);
}
}
O(n)
function onlyElementsAtEvenIndex(array) {
var newArray = Array(Math.ceil(array.length / 2));
for (var i = 0; i < array.length; i++) {
if (i % 2 === 0) {
newArray[i / 2] = array[i];
}
}
return newArray;
}
객체의 성능평가
배열의 성능평가
잘 보고 갑니다.