首页 - 成人英语 > 递归英文

递归英文

发布于:2021-07-30 作者:jason 阅读:354

递归英文与递归

调用通常发生在彼此不同的函数之间。其实调用函数有一种特殊的方式,那就是调用自身,这就是所谓的函数递归调用。递归也是编程中常见的技巧,甚至是一种思维方式,值得掌握。

递归英文与递归

本文选自《极简讲义:一本书入门数据分析与机器学习》这本书,将和我们一起讨论函数的递归。在本文的最后,我们将分析谷歌经典递归面试问题。

01感知知识递归

在解释递归的抽象概念之前,让我们回顾一下过去。

小时候,当我们缠着长辈讲故事时,长辈可能会用以下故事“忽悠”我们:

从前,山上有一座山和一座庙。庙里有一个老和尚在给小和尚讲故事。有什么故事?从前,山上有一座山和一座庙。在寺庙里,一个老和尚正在给小和尚讲故事。有什么故事?

……

除非讲故事的人停止说话,否则故事可以无限地继续下去,因为嵌套的故事就是故事本身,这是语言递归的一个例子。

但由于这个故事没有终止条件,实际上陷入了一个有头无尾的死循环,不符合编程领域对“递归”的定义。

在编程领域,递归是指函数(或方法)直接或间接调用自身的操作,如下图所示。递归调用的优点是可以大大减少代码量,将原本复杂的问题简化为简单的基础操作。在编程过程中,“递归调用”是一个非常实用的技巧。

递归图

从上图可以看出,一个函数无论是直接调用还是间接调用自己,都是一个无止境的过程。在编程中,很明显,这种没有终止的调用是不可能发生的。因此,在编写递归算法时,读者应该特别注意这样一个事实,即所有递递归英文归都必须有终止条件,这也称为递归退出。如果递归函数缺少递归出口,则在执行时会陷入无限循环。递归出口通常可以由if语句设置。当满足一定条件时,不会继续,调用一定的值结束递归。

谷歌拥有世界上最聪明的程序员。他们不仅聪明,而且有自己的“冷幽默”,独树一帜。比如你不知道递归是什么,不妨在谷歌搜索一下这个关键词。然后你会发现,除了给出必要的搜索结果外,谷歌还给出了提示“你在找递归吗”,如下图所示。

乍一看,你可能会认为谷歌搜索有问题。我真正明确无误地询问的是“递归”。你还有什么建议?

其实这就是谷歌搜索引擎背后程序员的“冷幽默”:点击提示“递归”,搜索引擎会再次搜索“递归”——,相当于叫自己——。这不就是递归的本质吗?

也许你明白了,笑了,但你可能还是会想:这不对。所有递归都有终止条件。如果我们一直点击提示词“递归”,查询会无限期地进行下去吗?

别担心,你不会一直点击的。因为这个递归的出口是查询者最终知道什么是递归,并停止查询。而你才是理解的人。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至 201825640@qq.com举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

上一篇:个性英文签名

下一篇:leetcode 官网

相关文章

自定义链接1

电话咨询
自定义链接2