zoukankan      html  css  js  c++  java
  • 迭代和递归

    唯心主义是哲学上的两大基本派别之一,同唯物主义相对立的哲学思想体系。唯心主义的基本含义,是在思维和存在、精神和物质的关系这个哲学基本问题上,认为精神(意识)第一性,物质第二性,精神决定物质,物质是精神的产物。唯心主义有两种基本表现形式:客观唯心主义和主观唯心主义。客观唯心主义认为,在现实世界之外独立存在着一种客观精神,它是世界的本源,世界万物是由它产生(派生)出来的。其著名代表人物,有中国的朱熹、古希腊的柏拉图和德国的黑格尔等。主观唯心主义是把人的主观精神(意识、观念等)作为认识世界的出发点,存在主观精神之中的是认知上的世界,是主观精神的产物,而并非真正客观上的世界。主要代表人物,有中国的陆九渊和王守仁,英国的贝克莱和德国的费希特等。

    一、递归

    1. 递归:程序调用自身的编程技巧称为递归,是函数自己调用自己。
    2. 使用递归要注意的有两点:
      • 递归就是在过程或函数里面调用自身
      • 在使用递归时,必须有一个明确的递归结束条件,称为递归出口
    3. 一个问题只要同时满足以下3个条件,就可以用递归来解决:
      • 问题的解可以分解为几个子问题的解。何为子问题?就是数据规模更小的问题
      • 问题与子问题,除了数据规模不同,求解思路完全一样< 大专栏  迭代和递归/li>
      • 存在递归终止条件
    4. 优缺点
      • 优点:代码的表达力很强,写起来简洁。
      • 缺点:空间复杂度高、有堆栈溢出风险、存在重复计算、过多的函数调用会耗时较多等问题。
    5. 递归代码编写
      • 写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码。

    二、迭代

    1. 迭代:用变量的原值推算出变量的一个新值。如果递归是自己调用自己的话,迭代就是A不停的调用B。

    三、对比

    概念 优点 缺点
    递归 1.大问题化为小问题,可以极大的减少代码量
    2.用有限的语句来定义对象的无限集合
    3.代码更简洁清晰,可读性更好
    1.递归调用函数,浪费空间
    2.递归太深容易造成堆栈的溢出
    迭代 1.迭代效率高,运行时间只因循环次数增加而增加
    2.没什么额外开销,空间上也没有什么增加
    1.不容易理解
    2.代码不如递归简洁
    3.编写复杂问题时困难。
  • 相关阅读:
    python网络编程 — HTTP客户端
    实验吧Web-天网管理系统
    实验吧Web-FALSE
    实验吧Web-Forms
    离散数学-集合运算基本法则
    sublime text3编译运行C,Java程序的一些配置
    kali Rolling 安装QQ和虚拟机
    python并行任务之生产消费模式
    Linux磁盘管理
    python网络编程之网络主机信息
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12371009.html
Copyright © 2011-2022 走看看