zoukankan      html  css  js  c++  java
  • 递归

    我对递归的理解,是从递和归开始的。递是一个发送的过程,归是一个得到的过程。递归就是在不停的发送和得到,然后根据条件来控制发送和得到的结果。

     最简单的递归不就是这样的吗。递归也就是一个深度的循环,只不过循环的条件可以由自己的变量进行控制,或者说循环的条件是依赖这个方法执行的结果的。

    主要是递归可以用在什么地方,怎么使用递归,以及递归的注意点是什么?这三个问题会比较的需要进行思考。

    很简单的说,在平时的开发时候的,一般都思维都是很单一的,会使用哨兵(成员变量or局部变量)来实现循环体的条件。然后就是很粗暴的那种while(i==100),这种,链式的思维我感觉在算法中是很有困扰性的一件事情,所以在这个文章中需要掌握的还是 递归的思想以及在什么样的环境下使用。当然.....上面的方法和递归没区别。我更喜欢叫上面那种是控制循环,递归称为自然循环。

    就在使用递归的时候主要是对问题的拆分:例如排序一个数组,可以拆分为奇数下标的左边比右边小。

    然后是子问题和父问题的求解思路一样,或者说 除了数据规模不一样,其余都相同

    最后是对终止递归的条件的设立。不然会一直循环下去。

    写出递推公式,找到终止条件,这就是递归的核心

    写个Demo好了,我也不知道咋说。

     就这种是肯定不行的。正确的应该是:

     一定要注意递归的深度问题

  • 相关阅读:
    oracle 下创建数据实例
    MyEclipse7.02注册码
    liferay 5.1学习遇到的错误
    详解struts2中struts.properties
    cas部署到linux登陆也出现异常
    java 字符串和输入流互转
    ASP 的Base64加密 与ASP MD5加密
    Struts2直接下载从数据中的blob类型字段( Struts2.0下载文件流)
    java 汉字转拼音
    java调shell,可以输入参数
  • 原文地址:https://www.cnblogs.com/SmartCat994/p/14097719.html
Copyright © 2011-2022 走看看