首页 > 编程知识 正文

迭代和递归的实例,浅思考

时间:2023-05-04 11:38:44 阅读:110423 作者:4821

递归和迭代其实本文主要理解递归,但说到递归一定与迭代有关,所以我们先来谈谈迭代

百度的官方解释是:

迭代是一种重复反馈过程的活动,通常旨在接近所需的目标或结果。 每次重复过程都称为“迭代”,每次迭代获得的结果是下一次迭代的初始值。

反复执行需要在计算机的特定程序中反复执行的子程序* (一系列指令),直到满足某个条件,也称为反复。

那么,可以理解为反复在程序中是循环的,其目的是一步步逼近结果。

递归百度的官方解释是:

程序调用自己的编程技巧称为递归(recursion )。 递归作为一种算法在编程语言中被广泛使用。 过程或函数可以在其定义或说明中直接或间接调用自身。 通常,将大而复杂的问题变换为与原问题相似的小规模问题进行求解。 递归策略可以用很少的程序描述求解问题过程所需的迭代计算,大大减少了程序的代码量。 递归的能力在于用有限的语句定义对象的无限集合。 通常,递归需要边界条件、递归前进段和递归返回段。 如果不满足边界条件,则递归前进; 当满足边界条件时,递归返回。

据此,我们可以理解为一个函数调用自己,但这似乎是无稽之谈。 但这个过程又是两个阶段——递、归

传递:继续进入函数(自身)的进程,但传递的参数不同,返回的内容也不同。 归:在回来的过程中,说白了就是return; 其中return的条件一定与参数有关。 递归使用情况递归既然是方法的自我调用,那么该方法用于解决某个问题,该方法的自我调用被理解为解决这个问题的子问题,子问题的范围由递归方法的参数决定。 在这里总结一下吧。 递归用于解决子问题。

那么,我们可以根据父母问题与子问题的关系求出父母问题的答案:

父母问题的回答由孩子问题的回答和其他内容组成(典型情况:汉诺威、合并排序) )。

这种方案的解决步骤应该是递归地给出子问题的答案。 将子问题的答案和其他答案组合起来得出最终答案。 关于递归的结束条件(递归边界),xddgz判断是否能够充分简单地求出部分问题的解答,或者问题本身已经不存在,不需要再继续分为部分问题,就可以结束递归。 父母对问题的回答分为对多个孩子的问题的回答和其他。 典型案例:快速搜索)

这种方案的解决程序应该是操作其他部分的回答来分离子问题。 求子问题的回答。 递归结束条件同上。 总结起来,其实迭代就是从小结果出发,一步一步变成大结果的过程,递归就是从大问题本身出发,一步推到小问题,然后用小问题的答案回来解决大问题。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。