第三章 万级斐波那契(1/2)
好书推荐: 活在崩坏世界
报告顾少,你老婆生了
重生甜妻:墨少宠妻请低调
四爷独宠:试婚宫女
高冷校草住隔壁:小可爱,么么哒
末世幼稚园攻略
穿越全能网红
穿越之公主我不傻
下堂王爷仵作妃
冉冉物华生
“啪嗒”。
小册子掉落在了桌子上。
杨成定睛一看,发现自己刚才手写的解题方法旁边多了一个小小的绿色对勾。
“唉,没啥挑战性啊”。
杨成活动了一下筋骨。
话音刚落,然后,他看到那个小册子自动地翻过了一页,上面又浮现了一些笔迹。
“依上题,若n大于10000,且小于20000,作何解?”
杨成念完这新内容,皱了皱眉头。
“传统的递归方法求斐波那契数列,只限于小数求解,到了万级再用一般性的递归,效率低不说,还有可能导致递归栈溢出”。
“那么如何在原来的代码上做修改,来达到提高性能的目的呢?”
杨成思索了片刻。
“既然递归方法慢的根本在于重复性的计算太多,那么我可以使用缓存!”
杨成很快想到了解答方法,这得益于他有经常上博客论坛向大牛请教的习惯。
在javascript中,对象常用作为缓存,对于斐波那契数列这样的固定序列,用全局对象来缓存是最好的方法。
(object{})
至于具体的逻辑,很好写:
假如缓存中没有这一项,那就缓存进去,如果存在,就直接取出来,无需重复计算。
javascript对象本质上是散列表,或者说哈希表,所以这对象的存取效率高的令人发指,几乎可以忽略性能方面的开销了。
杨成在原本的解答上加了一些代码,用上了缓存的思想。
“这个题目加深了一些难度啊”。
杨成揉了揉太阳穴,看着那小册子再次犹如中了“浮空术”一般晃悠悠地飞向了半空中,开始了不急不慢地翻页。
四周此时静寂无声,杨成看了看窗外,那高高的塔楼顶端,还有卫兵在守卫。
这一切的一切都显得无比真实。
本章未完,点击下一页继续阅读。