比较JavaScript中递归和循环阶乘函数的性能
我们将编写两个JavaScript函数,这两个函数的工作将是接受一个数字并返回其阶乘。
第一个函数应利用for循环或while循环来计算阶乘。而第二个函数应该使用递归方法来计算阶乘。
最后,我们应该比较这些函数在大量迭代中花费的时间。
示例
以下是代码-
const factorial = (num = 1) => {
let result = 1;
for (let i = 2; i <= num; i += 1) {
result *= i;
}
return result;
}
const factorialRecursive = (num = 1) => {
if(num > 1){
return num * factorialRecursive(num - 1);
}else{
return 1;
}
};
const ITERATIONS = 100000000;
const num = 12;
console.time('Looping Approach');
for(let i = 0; i < ITERATIONS; i++){
factorial(num);
};
console.timeEnd('Looping Approach');
console.time('Recursive Approach');
for(let j = 0; j < ITERATIONS; j++){
factorialRecursive(num);
};
console.timeEnd('Recursive Approach');输出结果
以下是控制台上的输出-
Looping Approach: 886.720ms Recursive Approach: 6526.203ms
机器之间花费的时间将有所不同,比率必然会保持大致相同。
热门推荐
5 入学校简短祝福语
10 祝福语同事离职英文简短
11 老婆生日祝福语简短孩子
12 朋友搬迁新房祝福语简短
13 企业励志拜年祝福语简短
14 贺寿祝福语长辈简短
15 升职祝福语朋友简短精辟
16 新年祝福语长辈简短红包
17 生日祝福语贺卡老师简短
18 七姐妹新春祝福语简短