zoukankan      html  css  js  c++  java
  • JAVA数据结构和算法 6 递归

    递归:直接或者间接地调用自己。比如计算连续数的阶乘,计算规律:n!=(n-1)!*n。

    每个递归方法都有一个基值(终止)条件,以防止无线地递归下去,以及由此引发的程序崩溃。

    采用递归是因为它可以从概念上简化问题,递归算法结构清晰、可读性强,且容易采用数学归纳法证明算法正确性。然而时间花费和空间花费都比非递归算法更大。

    关于递归与分治:

    分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题与原问题相同且相互独立。

    递归地解这些子问题,然后将各子问题的解合并得到原问题的解。

    使用分治思想设计出的算法一般是递归算法,所以分治问题的时间复杂度也可以用递归方程来分析

    关于递归与回溯:

    回溯也是一种算法思想,可以用递归实现。通俗点讲回溯就是一种试探,类似于穷举,但回溯有“剪枝”功能。

  • 相关阅读:
    .vimrc
    GNU_makefile_template
    EM算法
    《设计模式之禅》学习笔记
    k-近邻算法
    机器学习基础
    《机器学习实战》学习笔记
    使用Apriori算法和FP-growth算法进行关联分析
    An ffmpeg and SDL Tutorial
    在Qt Creator中添加OpenCV库
  • 原文地址:https://www.cnblogs.com/lsh0908/p/11770783.html
Copyright © 2011-2022 走看看