活跃农民
- 积分
- 361
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2013-2-14
- 最后登录
- 1970-1-1
|
注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
divide and conquer不用说了,肯定是递归呀
dfs,用stack肯定是递归对吧
dynamic programming,从子问题中解决原问题,只不过加了一个cache/memo来记录子问题,用空间换时间
backtracking,也是递归对吧, 只是子问题之前没有overlap所以时间复杂度比dp高很多
binary search其实也可以算递归,每次通过一个local的condition(砍掉左边还是右边)来决定如何把原问题的size降低一半, 然后不断重复
问啥递归这么强大呢?这个lz是外行只能引用一下wiki
It follows that it is difficult to devise a computable function that is not primitive recursive
https://en.wikipedia.org/wiki/Primitive_recursive_function#:~:text=In%20computability%20theory%2C%20a%20primitive,determined%20before%20entering%20the%20loop).
所以从计算理论上来说recursion是相当强大的,所以各种方法看成是递归的变种也不奇怪。
只不过这个perspective虽然general,但是还缺少很多细节。实际做题的时候只用递归可能会太慢。这时候就想办法转成iteration的方法来加速。有很多细节和奇技淫巧lz下次再总结吧
大家觉得有用给点大米呗~~ |
上一篇: 你们都怎么学习递归下一篇: brain teaser求讨论!金工买方OA
|