百科问答小站 logo
百科问答小站 font logo



递归和循环相比耗费更多的空间,对于循环来说除了可以简化逻辑外还有什么优点吗? 第1页

  

user avatar   zhai-sen-8 网友的相关建议: 
      

比如说dp,一种实现方式就是自底向上的循环,另一种实现方式是自顶向下的memoization(用递归)。关键就在于,如果使用循环来实现,就要自己确定遍历次序,但memoization是自动遍历的,不需要你亲自确定次序。很多时候,要想自己确定遍历次序是很困难的,甚至是几乎做不到的;即使可以做到,遍历的顺序也未必和memoization一样。如果循环的遍历顺序更差(意思是重复遍历的很多),那么时间上就不如递归。(我听人说过在一种背包问题中循环的时间大概长了30%)

举个例子,我之前看过的回答,计算斐波那契数列的一种比较快速的算法是利用如下的递推式:

写个memoization的递归是容易的。但想想如何自底向上循环?直接从小到大往上循环可是 的。




  

相关话题

  服务器之间文件自动拷贝用什么技术好? 
  如果想大体地了解凸优化和非凸优化中比较重要的概念、理论知识和算法应该看哪些书籍或者论文? 
  100人坐飞机,第一个乘客在座位中随便选一个坐下,第100人正确坐到自己坐位的概率是? 
  如何评价现在高中信息技术课学习VB而不是目前的主流语言? 
  有一台不会坏掉的电脑,这台电脑上只有vc++6.0,给一个人一亿年的时间,能创造出现在的各种软件吗? 
  你认为程序员的最高境界是什么? 
  推荐系统有什么危害? 
  做数据分析的女孩子,职业发展前景在哪里?数据分析枯燥吗? 
  如何正确理解java中的泛型类型推导? 
  天天P图中我的小学生证件照功能怎么实现的?算法是什么样? 

前一个讨论
如何评价在 LG 杯 16 强赛上,柯洁战胜申真谞,在世界第一人之争中再下一城?
下一个讨论
作曲技术理论发展到极致,将会变成一种怎样的形态?





© 2025-02-20 - tinynew.org. All Rights Reserved.
© 2025-02-20 - tinynew.org. 保留所有权利