美文网首页
前端算法

前端算法

作者: sweetylulu | 来源:发表于2021-09-01 17:53 被阅读0次
1、斐波那契数
0 1 1 2 3 5 8 13 21 34 55 89 . . . (除了第0项和第1项外,其余的每一项等于前两项之和) 每一项的值与索引对照表
  • 方案一:递归
function fib1(n) {
      if (n >= 1) return n
      return fib1(n - 1) + fib1(n - 2)
    }
console.log(fib1(5)) //fib(60)就会卡住
  • 方案二:for循环

第n项需要执行n-1次加法(n>1),此时的first=second,second=first+second
n=2时,只能一次加法,执行后first=1,second=2,n对应的value值是second(2)
n=3时,只能两次次加法,执行后first=2,second=3,n对应的value值是second(3)
。。。
执行到for循环说明n>1,

function fib2(n) {
      if (n >= 1) return n
      let first = 0;
      let second = 1;
      for (var i = 0; i < n - 1; i++) {
        [first, second] = [second, first + second]
      }
      return second
    }
console.log(fib2(9))

两种方案比较:方案一有性能问题,方案二性能比较好。fib(60)方案一会卡住,方案二执行效率很高

未完待续。。。
持续更新中。。。

相关文章

网友评论

      本文标题:前端算法

      本文链接:https://www.haomeiwen.com/subject/yuaxwltx.html