《python算法教程》Day3 - 递归

作者: billiam | 来源:发表于2018-04-15 17:40 被阅读31次

这是《python算法教程》的第3篇读书笔记。由于之前看书的效率太低了,所以拖了一个多星期才写第三篇读书笔记。这次主要简单总结一下递归(recursion)。

递归简介

递归是编程中一种常见的算法,他的主要特征是函数运行过程中会调用函数自己,呈现出同一个函数层层套嵌的现象。
之所以会使用递归,是因为需要解决的问题可通过分解为与原问题相同但规模较小子问题来解决。同时规模较小的子问题可通过较为简单的代码来解决。
上述解决问题的思路则正可通过递归来实现。但要注意的是:
1.递归算法的开销较大。若开销较小的算法能替代递归,则建议使用开销较小的算法。
2.为避免递归算法中,函数被无限次调用,陷入死循环,应在函数中设置结束条件。

代码示例

以下是使用递归来对1至100之间的自然数进行求和的代码。

#递归实现求和
#start为起始数字,end为结束数字,step为步长
def recursionSum(start,end,step):
    s=0
    #结束条件
    if start>end:
        return 0
    #递归操作
    s=start+recursionSum(start+step,end,step)
    return s

s=recursionSum(1,100,1)
print(s)

以下是通过循环的求和代码

#通过循环结构实现求和
def cycleSum(start,end,step):
    s=0
    for i in range(start,end+1,step):
        s=s+i
    return s

s=cycleSum(1,100,1)
print(s)

相关文章

  • 《python算法教程》Day3 - 递归

    这是《python算法教程》的第3篇读书笔记。由于之前看书的效率太低了,所以拖了一个多星期才写第三篇读书笔记。这次...

  • Python算法教程第三章知识点:求和式、递归式、侏儒排序法和并

    Python算法教程第三章知识点:求和式、递归式、侏儒排序法和并归排序法

  • python数据结构教程 Day6

    python数据结构教程 Day6 本节重点 递归定义 递归调用的实现 简单递归的应用 一、递归 在python基...

  • 个人 Python 书单

    入门: Beginning Python 数据结构: Python 数据结构 算法: Python 算法教程

  • Python 算法 第一章 介绍

    题学习使用教材<Python算法教程> Python 算法教程 在此进行记录,方便以后学习,加深记忆.

  • Python 目录

    python 资料 python写的常用脚本,用到的时候快速修改 python算法教程(第一章) python算法...

  • Python | 递归教程

    说起递归,我觉得其实大部分人应该是不陌生的,递归广泛存在于生活中。比如: The woman in this im...

  • C语言基础教程之递归

    一文读懂C语言递归算法,C语言基础教程之递归 C语言递归 递归指的是在函数的定义中使用函数自身的方法。 从前有座山...

  • Python:3.函数

    调用函数 定义函数 函数的参数 递归函数 参考 廖雪峰的Python教程

  • 快速排序

    python版本快速排序: 1. 简洁版递归: 2. 常见版本: 3. 算法导论版: 4. 非递归版:

网友评论

  • IT人故事会:老铁下次注意格式啊,不太清晰,给点建议对于新手需要的是注释啊

本文标题:《python算法教程》Day3 - 递归

本文链接:https://www.haomeiwen.com/subject/dogdkftx.html