Javascript 记忆功能比未记忆功能占用更多时间

Javascript 记忆功能比未记忆功能占用更多时间,javascript,memoization,Javascript,Memoization,我试图用javascript实现记忆技术。但是我的记忆功能比非记忆功能花费的时间更多。我认为我已经正确地实现了记忆函数(我是编程新手)。 谁能帮我一下,告诉我原因吗 记忆功能代码: function fiboeven(n){ var cache =[] if (n in cache) return cache[n] else if (n === 1) return cache[0] = 2 else if (n === 2) return cache[1] =

我试图用javascript实现记忆技术。但是我的记忆功能比非记忆功能花费的时间更多。我认为我已经正确地实现了记忆函数(我是编程新手)。 谁能帮我一下,告诉我原因吗

记忆功能代码:

function fiboeven(n){
    var cache =[]
    if (n in cache)  return cache[n]
    else if (n === 1) return cache[0] = 2
    else if (n === 2) return cache[1] = 8
    else return cache[n] = 4*fiboeven(n-1) + fiboeven(n-2)
} 
非记忆功能:

function fiboeven(n){
    if (n === 1)
        return 2
    else if (n === 2)
        return 8
    else
        return 4*fiboeven(n-1) + fiboeven(n-2)
}

不,您的缓存将在每次呼叫后回收。而且你没有真正使用它:

var cache=[0,2,8];
function fiboeven(n){
        if (cache[n])  return cache[n];
        return cache[n] = 4*(cache[n-1] || fiboeven(n-1)) + (cache[n-2] || fiboeven(n-2));
}


or运算符(| |)首先尝试获取缓存的值,如果该值不存在,它将递归生成该值。

不应在函数中初始化缓存,否则它将始终为空