首页
学习
活动
专区
圈层
工具
发布

野牛程序员带娃看“算法拳击赛”之:递归 VS 迭代的大对决!谁才是编程界的王者?

野牛程序员带娃看“算法拳击赛”之:递归 VS 迭代的大对决!谁才是编程界的王者?

野牛程序员带娃看“算法拳击赛”之:递归 VS 迭代的大对决!谁才是编程界的王者?🥊

🥁锣鼓敲起来,今天这场比赛特别激烈:

一边是风格优雅、有点“哲学味”的老选手——递归 Recursion

🧑 另一边是体力超强、能干到底的硬核选手——迭代 Iteration

他们都能干同样的活,走的却是完全不同的路!

选手介绍一下:

🧙‍ 递归:会魔法的“自己打自己”

特点:函数自己调用自己,像照镜子

优点:代码简洁,逻辑优美,适合处理树结构、分治问题

缺点:太深的递归容易“爆栈”(内存崩了)‍

🦾 迭代:一锤子一个脚印的“实干家”

特点:靠for或while死磕到底

优点:执行效率高,占用内存少,适合长时间重复工作

缺点:代码有时啰嗦点,看起来不那么“高大上”

🧮 用阶乘举个例子(求 n!)

递归版 C++:

看起来是不是像在写数学公式?很优雅~

迭代版 C++:

看起来就像:给个锤子,一顿猛砸!但也很实用~

🤔 那到底谁更厉害?

🧠 什么时候用递归?

解决结构像树的问题:文件夹遍历、数独、汉诺塔、斐波那契

问题可以被分成更小的相同问题

喜欢代码简短优雅派

什么时候用迭代?

需要长时间大批量重复操作

担心栈空间不够、怕爆栈

任务逻辑简单直接,比如:遍历数组、找最大值等

野牛程序员总结一句话:

🥷递归是思维的艺术,迭代是执行的力量!

真正的高手:会写递归、也能改成迭代!

比如有的题目用递归写得优雅,用迭代跑得飞快,两种思路都要会!

最后送上一张比喻图:

野牛程序员教少儿编程与信息学奥赛

宜宾市野牛网络科技有限公司专业微信小程序开发、网站建设、软件开发等

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OGc8vYmsCETYezuKlZuyA9vA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券