人用迭代,神用递归

本文探讨了编程中的迭代和递归思想。迭代即循环,是解决重复语句的基础,而递归是通过函数自身调用来解决问题的高级技巧。递归虽然可能导致栈内存占用过多,但其能解决一些迭代难以处理的问题。文章通过计算1到100的和为例,展示了迭代和递归两种解题方法的结构和差异。
摘要由CSDN通过智能技术生成

迭代——递归

这一次的总结的标题有些不一样,为什么说“人用迭代,神用递归”呢?这是因为迭代和递归都可以解决代码中反复出现的语句,只是解决的方法不一样罢了。

迭代

迭代字面意思就是一代又一代,听起来有点儿像循环,实际上它就是循环,迭代思想就是运用循环去解决代码中反复出现的语句。而循环作为Java语言中较为基础的一种方法,是能够被大家所熟悉掌握的,这也是为什么“人用迭代”。

递归

递归的含义就是层层递进,之后全部归一。那怎么实现层层递进呢?递归就用函数自身调用函数自身实现的。递归其实就是一种算法,而这个算法的核心就函数,以为函数所能参与的面及其广,所以递归能解决的问题也就非常多。一般而言,但凡能够被迭代(循环)解决的问题,递归都可以。但是递归能解决的问题,迭代却不一定能够解决。

说了这么多,递归在代码中到底是怎么实现的呢?递归其实是分治法的一种实现方式(一种实现思路),分治法一种算法思想,分治法主要解决的问题是将大问题,进行拆分,拆分成若干个小的问题进行求解,最终将每个小问题的解进行合并。其实,分治法就是一种暴力破解法(穷举),也是一种搜索最优答案的算法。它就相当于现实中我们所说的地毯式搜索,这样就会大大减少漏的几率,但是这样也会消耗大量的人力物力财力,回到分治法和递归中,也就是说,这样会占用栈内存中大量的内存,造成了运行代码时计算机计算数据的速度会很慢,这就是递归的一个缺陷。</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值