什么是递归
假设你在祖母的阁楼中翻箱倒柜,发现了一个上锁的神秘手提箱。祖母告诉你,钥匙很可能在下面这个盒子里。你如何找到它:
(1)检查盒子中的每样东西。
(2)如果是盒子,就回到第一步。
(3)如果是钥匙,就大功告成!
递归只是让解决方案更清晰,并没有性能上的优势。实际上,在有些情况下,使用循环的性能更好。
递归条件
每个递归函数都有两部分:基线条件 (base case)和递归条件 (recursive
case)。递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。