递归与循环,为什么老是写错?

递归与循环,通常是我们用来解决,问题规模大,并且有重复性的步骤的问题

我一般会使用递归,因为递归的逻辑清晰,代码实现起来方便,今天我们不去关注,时间复杂度,空间复杂度,栈溢出的情况,只去考虑两种编程的理论与代码的相结合。

就拿一个简单的二分法来讲吧。如果你脑海里是递归的想法,去写一个循环解决的方法的话,相信我你会遍体鳞伤,不信,你可以去试试,很多细节之处,你可能考虑不到位,导致你的程序出现错误。如果你此时还是用递归的思想去检查代码,会很难去发现问题,但是如果你转变思路,去使用循环的思想,你很快就能够发现问题,并去解决它。

这样其实有点多此一举的感觉,如果你是递归的思想,就去写递归的算法,循环的思想就去写循环的算法。想清楚再去写。很多算法没有绝对意义上的好与坏,环境不同我们的选择不同,如果排序就用一种,查找也``用一种,什么都去用一种,未免太死板了些吧。

给大家看看我的代码吧,欢迎批评。
递归算法:
当到达边界条件和找到key的时候,不再去调用自身,直接返回。
在这里插入图片描述
循环算法:找到了就直接返回位置,根本没找到就返回-1
在这里插入图片描述

希望大家关注我,我会互关的,一起学习,一起进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值