算法其实还是很有意思的 慢慢研究 收获会很大
简单的来讲解一下 循环与递归的异同
1.相同:
递归与循环都是解决 重复操作的机制
2.不同
就算法效率而言,递归算法的实现往往要比迭代算法消耗更多的时间(调用和返回均需要额外的时间)
与存储空间(用来保存不同次调用情况下变量的当前值得栈空间)也限制了递归的深度。
每个迭代算法原则上总可以转换成与它等价的递归算法,反之不然。
递归的层次是可以控制的,而循嵌套的层次只能是固定的,因此递归是比循环更灵活的重复操作机制。
递归算法解题通常有三个步骤
1.分析问题 寻找递归 找出最大规模问题 与最小规模问题的关系 这样通过递归使问题的规模逐渐变小
2.设置边界、控制递归、找出停止条件 也就是说算法可解的最小规模问题
3.设计函数、确定参数 和其他算法模块一样设计函数中的操作及相关操作