zoukankan      html  css  js  c++  java
  • 递归算法(java)

    最近在用EasyUI中的tree遍历节点的时候用到了递归算法,现总结如下:

     * 递归算法:在函数里调用自身,但必须确定递归出口,即结束条件,不然就是无限循环;
     * 递归一般解决的问题:
           1.数据的定义是按递归定义的(Fibonacci函数);
           2.树的遍历,图的搜索;
           3.回溯;
     * 递归的缺点:
           递归算法的运行效率较低。在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出。

    测试了两个例子:

    1.

    	/**
    	 * 1.求5的阶乘5=5*4*3*2*1
    	 */
    	public static int Test1(int n){
    		if (n==0||n==1) {
    			return 1;
    		}else {
    			return n*Test1(n-1);
    		}
    	}
    

      

     2.

        /**
         * 2.楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,有多少种走法?
         */
        public static int Test2(int n){
            if (n==1) {
                return 1;
            }else if (n==2) {
                return 2;
            }else {
                //这里可以这样理解:最后一次走一步Test2(n-1)或者最后一次走两步Test2(n-2)
                return Test2(n-1)+Test2(n-2);
            }
        }
    
    
        public static void main(String[] args) {
            System.out.println(Test2(10));
        }
    

      

  • 相关阅读:
    iptraf查看TCP/UDP某个特定端口的带宽与流量
    linux read 命令
    2 css常识二
    1 css常识
    18 表单
    17 事件
    16 DOM
    15 BOM
    14 函数-高级
    13 对象
  • 原文地址:https://www.cnblogs.com/monkjavaer/p/9569265.html
Copyright © 2011-2022 走看看