美文网首页
第六讲-递归

第六讲-递归

作者: 小妍妍说 | 来源:发表于2018-12-20 19:21 被阅读0次

递归需满足的三个条件:

  • 划分:一个问题可分解成多个子问题

  • 求解更小的问题:除了问题规模不同,每个子问题的求解方法是一样的

  • 综合解:存在递归终止条件

如何写好递归?

写递归代码的关键就是找到如何将大问题分解为小问题的规律,并且基于此写出递推公式,然后再推敲终止条件,最后将递推公式和终止条件翻译成代码

递归的优缺点

优点:代码的表达力很强,简洁明了

缺点:空间复杂度高、有堆栈溢出风险、存在重复计算、过多的函数调用会耗时较多等问题

递归代码如何调试?

1.打印日志发现,递归值。
2.结合条件断点进行调试。

Algorithm SelectionSort
Input: An array A[1..n] of n elements.
Output: A[1..n] sorted in non-decreasing order.

Solution: sort(1)
Procedure sort(i)   //Sort A[i..n]
if i<n then
      k=i
      for j=i+1 to n
             if A[j] < A[k] then k=j
      end for
      if ki then interchange A[i] and A[k]
      sort(i+1)
end if 

相关文章

  • 第六讲-递归

    递归需满足的三个条件: 划分:一个问题可分解成多个子问题 求解更小的问题:除了问题规模不同,每个子问题的求解方法是...

  • 数据结构与算法第六讲 - 递归

    本讲内容 递归的定义递归的特性递归的写法递归的应用 思考题:推荐注册返佣金某app,用户 A 推荐用户 B 来注册...

  • 总结

    主要思想摘自《漫谈递归:递归的思想》,同时也是本文的参考资料。 关于递归上面的链接讲的很多,也很详细,开辟这个...

  • 快速排序(oc/java/Python/scala)

    在讲解快速排序之前,先来说一说递归和栈。 递归 通俗地讲,一个函数调用自己本身,就是递归。每个递归函数都有两部分:...

  • 递归精讲篇

    递归的构成条件: 1、一个大问题可以分解成多个子问题2、子问题与大问题的解决方式完全一样,只是规模不同3、子问题具...

  • 我的世界红石:递归原理

    什么是递归 递归是用活塞将方块推动到一个以上方块距离的地方,再拉回来。比如我们今天讲的二次递归(作者只会做二次递归...

  • 递归

    什么是递归? 通俗的讲,函数直接或者间接的调用自己就是递归。我的理解是递归中几个重要的元素必须有参数,临界点关系(...

  • Python汉诺塔算法解析

    昨天看廖雪峰的Python教程,看到了递归函数,具体的递归函数看他讲的就可以,最好自己好好研究一下递归函数是干啥的...

  • 递归算法与递归算法的应用

    这一讲,我们来聊聊递归法算。 概念 什么是递归算法?若一个算法直接地或间接地调用自己本身,则称这个算法是递归的。 ...

  • Python递归函数

    简单的来定义下这个递归函数,通俗点讲就是一个函数在内部调用自身,这个函数就是递归函数。bb is cheap , ...

网友评论

      本文标题:第六讲-递归

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