趣味算法——递归

趣味算法——递归

趣味算法——递归

但是手提箱上有一把很大的锁,小N问奶奶怎么才能打开箱子?奶奶给了小N一个大盒子,告诉小N,钥匙就在盒子里

趣味算法——递归

小N奶奶给的这个盒子,是大盒子套装一堆小盒子,每个小盒子里面还有盒子。而盒子里面还有盒子。钥匙就在某个盒子里面。为了找到钥匙,小N该用哪种算法呢?

小A是小N的小伙伴,他来给小N提供了一种算法:

趣味算法——递归

趣味算法——递归

普通方法使用的是while循环:只要盒子堆不空,就从中 取一个盒子,并在其中仔细查找。

趣味算法——递归

小N是个“懒”孩子,哭着说“不要,不要!”

趣味算法——递归

趣味算法——递归

第二种方法使用递归——函数调用自己,这种方法的伪代码如下

趣味算法——递归

这两种方法的作用相同,但从小A看来,第二种方法更清晰。递归只是让解决方案更清晰,并 没有性能上的优势。实际上,在有些情况下,使用循环的性能更好。

如果使用循环,程序的性能可能更高;如果使用递归,程序可能更容易理解。如何选择要看什么对你来说更重要。

——Leigh Caldwell


分享到:


相關文章: