浅析递归“经典”框架,领略递归优雅秀气。看到有“递归算法优化”的操作,余试剖之。


【学习的细节是欢悦的历程】


  • Python 官网:https://www.python.org/

  • Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
    地址:https://lqpybook.readthedocs.io/


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


  • My CSDN主页、My HOT博、My Python 学习个人备忘录
  • 好文力荐、 老齐教室



浅析递归“经典”框架,领略递归优雅秀气 “递归三要素”寻踪 (看到有“递归算法优化”的操作,余试剖之。)



本文质量分:

91 】 本文地址: https://blog.csdn.net/m0_57158496/article/details/130371068

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ “递归三要素”寻踪
    • 1、“递归要素”概念
      • 1.1 百科词条中的“递归要素”
      • 1.2 题目中的“递归要素”
      • 1.3 博文中的“递归要素”
      • 1.4 “递归已死”? 递归没有死!!
    • 2、递归的“经典”案例
      • 2.1 阶乘
        • 2.1.1 阶乘概念
        • 2.1.2 递归代码
        • 2.1.3 炼码
      • 2.2 裴波拉契数列
        • 2.2.1 概念
        • 2.2.2 递归代码
        • 2.2.3 炼码
      • 2.3 1~n 的自然数序列求和
        • 2.3.1 求和代码
        • 2.3.2 炼码
    • 3、图解递归算法
    • 4、递归的“优化”
      • 4.1 “算法优化”
      • 4.2 “代码优化”
      • 4.3 循环改写递归
      • 4.4 递归“优化”感悟
    • 5、完整源码

◆ “递归三要素”寻踪

1、“递归要素”概念

1.1 百科词条中的“递归要素”

递归百科词条描述:

  “递归”是程序调用自身的编程技巧。
  程序调用自身的编程技巧称为递归( recursion )。递归作为一种算法在程序设计语言中广泛应用。
  一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
  递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。

  一般来说,递归需要有边界条件递归前进段递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

(点击递归蓝色文字跳转百科词条,了解更多)


回页目录


1.2 题目中的“递归要素”

  • 一、选择题

递归三要素包括 (   )
 A. 递归前进段  B. 递归中间段
 C. 递归出口   D. 递归返回段

答案:A、C、D

  • 二、填空题

  递归的要素:________ 是递归的重要组成部分,________ ,她保证递归能在 ________ 的计算后得出结果,而不会产生 ________ 的情况。

【解析】 本题考查递归思想。
程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法在程序设计语言中广泛应用。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。递推关系是递归的重要组成部分,边界条件,她保证递归能在有限的计算后得出结果,而不会产生无限循环的情况。

解答:递推关系、边界条件、有限、无限循环

----=== 以上题目来自“夸克搜题” ===----


回页目录


1.3 博文中的“递归要素”

1、确定递归函数的参数和返回值
  确定递归过程中需要处理的参数,明确每次递归的返回值,进而确定递归函数的返回类型。

2、确定递归终止条件(即函数 return 的出口)
  终止条件写的不对,操作系统的内存栈一定会溢出,毕竟递归深度也是有限制的( Python 3.11 的递归深度限制默认是 1000 ,可以在程序中用指令重置)

3、确定单层递归的逻辑
  明确每次递归要进行什么操作。

博文地址:https://blog.csdn.net/weixin_44484715/article/details/113461398

第一要素:明确函数作用

第二要素:递归结束条件

第三要素:函数等价关系

博文地址:https://blog.csdn.net/feng8403000/article/details/121797194

第一要素:明确你这个函数想要干什么
  这个不言而喻,要是连函数要干啥子都不晓得,还写啥子代码哦。

“递归三要素”寻踪(浅析递归“经典”框架,领略递归优雅秀气;看到有“递归算法优化”的操作,余试剖之)相关推荐

  1. 关于递归三要素的理解

    递归的三大要素 第一要素:明确你这个函数想要干什么 对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么样的一件事,而这个,是完全由你自己来定义的.也就是说,我们先不管函数里面的代码 ...

  2. 【算法套路】-【递归篇】【递归三要素】

    [算法套路]-[递归篇] 文章目录 [算法套路]-[递归篇] 前言 递归三要素 前言 本文参考·[代码随想录]·大佬的二叉树:一入递归深似海,从此offer是路人,希望在写递归脑子糊涂的时候,给自己一 ...

  3. 递归_三要素_基础算法必备

    递归_三要素_基础算法必备 目录 第一要素:明确函数作用 第二要素:递归结束条件 第三要素:函数等价关系 第一要素:明确函数作用 对于递归,我觉得很重要的一个事就是,这个函数的功能是什么,他要完成什么 ...

  4. 递归、迭代和分治(1):递归

    ​1.从现实中理解三个概念 可能很多人就已经接触了递归了,不过我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是! 可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不 ...

  5. 函数的概念三要素参数返回值好处递归

    函数 概念:实现特定功能的一段代码,可反复使用. 函数的三要素:返回值类型,函数名,形参列表 函数定义:函数的声明和函数的实现 定义语法:public static void main(String[ ...

  6. python经典案例-Python递归的经典案例

    目录 : 一.递归的简介 二.递归的经典应用 2.1 递归求阶乘 2.2 递归推斐波那契数列 2.3 二分法找有序列表指定值 2.4 递归解汉诺塔 前言: 当我们碰到诸如需要求阶乘或斐波那契数列的问题 ...

  7. 【算法基础】经典例题说递归

    目录 [算法基础]经典例题说递归 递归简介 递归的适用范围 递归的基本思路 经典例题解析 移梵塔 题目描述 题目分析 题解 九连环 题目描述 题目分析 题解 更新日志 [算法基础]经典例题说递归 递归 ...

  8. [Leetcode][第24题][JAVA][两两交还的链表中的节点][递归][三指针]

    [问题描述][中等] [解答思路] 1. 递归 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public ListNode swapPairs(ListNode hea ...

  9. python数据结构与算法 20 递归和递归三定律

    递归 本章目标 理解很多复杂问题,如果不用递归就很难解决,用递归也许非常简单 学会怎样进行递归编程 理解并应用递归三定律 理解递归也是一种迭代 建立一个问题的递归方法 理解递归在计算机系统内是如何进行 ...

最新文章

  1. 将HLSL射线追踪到Vulkan
  2. vba编程教程视频教程_我已经完成了编程教程。 怎么办?
  3. mini-caffe
  4. ceph存储原理_【理论研究】漫谈传统IT基础设施10-存储(04)
  5. 点击lable标出现下拉搜索框及选择功能
  6. 集训队脱单大法:这是一道只能由学姐我自己出数据的水题
  7. 快手app sig3算法分析
  8. 将某个字段改为不重复(unique)
  9. 解决quartz的job无法注入spring对象
  10. linux 程序/usr
  11. 转贴:从现在电力短缺看今后劳动力短缺和高校破产
  12. Hadoop hive sqoop zookeeper hbase生产环境日志统计应用案例(hadoop篇)
  13. NUC1041 数字三角形【DP】
  14. 2017 ACM-ICPC乌鲁木齐网络赛 B. Out-out-control cars(几何)
  15. c语言标准函数模板,c – 标准库容器的通用函数模板
  16. NPAPI:WINDOWS中,调用函数不能阻塞
  17. 关于电脑主板RS-232串口定义
  18. 计算机如何安装无线网络适配器,小编教你电脑无线网卡驱动怎么安装
  19. Video IP:Video_In_to_AXI4-stream
  20. 安全防护与信息加密:一个新的挑战

热门文章

  1. android log.v,MVlog短视频
  2. 4月4日我儿子和我过生日,共享快乐。顺便贡献多年写的delphi数据库封装原代码。
  3. 这样的人注定是年薪百万千万
  4. 查询客户的亲属关系和余额
  5. SQL笔试经典50题及答案解析(题目1-10)
  6. mysql监控死锁_mysql死锁监控
  7. wait()函数和waitpid()函数
  8. 程序员必须学会释放压力——对程序员的3条另类忠告
  9. user电影的详细信息和播放vue
  10. 二维Gabor 滤波加速