问题描述
var start = new Date().getTime();
function sumTo(n) {
if (n == 1) return 1;
return n + sumTo(n - 1);
}
console.log(sumTo(100));
var end = new Date().getTime();
var time = end - start;
console.log('Execution time: ' + time);
和代码2
var start = new Date().getTime();
function sumTo(n) {
return n * (n + 1) / 2;
}
console.log(sumTo(100));
var end = new Date().getTime();
var time = end - start;
console.log('Execution time: ' + time);
5050
Execution time: 6
第二
5050
Execution time: 7
据我了解,code1是线性的,所以O(n)和code2是O(2 ^ n)。 为什么执行时间差这么小?