递归的艺术
我学编程也没多久,但是在很多时候都接触到了递归!
只想谈谈对递归的一些认识!
对于许多初学者(包括我),在刚学习递归的时候,都被他弄得头疼!
特别是总众所周知的汉诺塔(真名河内塔)问题!
让很多人睡不着觉!
如果我们不能正确的理解递归的原理,
在以后的很多学习中都会遇到一些困难!
即使递归会因为不断调用自身而造成时间的浪费!
特别是ACM对时间的限制很严格!
但是这并不影响递归在解决一些问题中的方便性!
像双色三色汉诺塔,背包问题。。。
很多经典问题!
我想说一下,大家如果在刚刚接触递归的时候可能会很迷糊!
其实,在刚一开始不要把自己陷入到那具体的调用过程(如果你能理解的话,更好!)
那样你就不会体会到使用递归的好处了!
应该学会一种抽象能力!
把问题建立在另一种层次上,忽略具体的实现细节,把这些工作交给递归函数去实现!
你只负责找到合适的边界条件,以及正确的调用递归函数!
如果一开始就陷入到具体的实现细节上,你会对递归感到很反感!
正确的使用递归会使你事半功倍!
如果你不理解的话,也不要乱用!
即使很多递归问题都可以用迭代来解决!
但是我一直认为递归有他存在的价值!
递归的艺术
最新推荐文章于 2024-05-09 13:49:30 发布