迭代和递归的代码比较(js)

迭代

  更省性能,效率高

  只更换房间内的物品

递归

  更耗性能,效率低

  占用很多房间,每个房间都放物品,直到进入了最后一道防线(设置出口),然后再开始运算...

例子

  阶层和斐波那契数列

/*
迭代 n的阶层
*/
function f(n){
    if(0===n) return 0;
    let z=1;
    for(let i=1; i<=n; i++){
        z *= i;
    }
    return z;
};

/*
迭代 斐波那契数列
*/
function d(n){
    if(1===n || 2===n) return 1;
    if(n<=0) return;
    let z =1;
    let x =1;
    for(let i=3; i<=n;i++){
        z +=x;
        x = z-x;
    } 
    return z;
}


/*
递归 n的阶层
*/
function f2(n){
    if(1===n) return 1;
    return n*f2(n-1);
};

/*
递归 斐波那契数列
*/
function d2(n){
    if(1===n || 2===n) return 1;
    return d2(n-1) + d2(n-2);
}

猜你喜欢

转载自www.cnblogs.com/dumungweii/p/11439077.html