zoukankan      html  css  js  c++  java
  • 递归

    递归算法:
    要点:1,递归要求;定义;
       2,特点;分析
       3,递归算法删除非空文件夹
     
    1,要求 1,递推条件;
      2,返回条件;
    递归定义:方法自己调用自己
    (注意:如果递归方法不加限制(方法没有返回的时候),程序最会会抛出StackOverflowError异常)
     
    2,递归方法与普通方法的比较
    1. 递归方法:优点:代码简洁
    2.      缺点:内存开销大,性能不高(每次递归都会相应的开辟空间,)
     
    案例分析1:求自然数n的阶乘:(n=10)
    public class JieChengDemo
    {
     public static void main(String[] args)
     {
      int n = 10;
      int j = jieCheng(n);
      System.out.println(j);
     }
     
     // 递推条件:jieChengN=n*jieCheng(n-1);
     // 返回条件:
     public static int jieCheng(int n)
     {
      // 求自然数n的阶乘n!
      if (n == 0)
      {
       return 1;// 返回条件:
      }
      return n * jieCheng(n - 1); //递推条件
     }
    }
     
    递归方法分析2:
      一个和尚一直在讲"从前有个庙...."一直讲下去,以下是对和尚讲故事讲到第三遍时,结束,分析过程:
     
      
     
    3,递归算法删除非空文件夹:(文件夹下可能有N层文件或者文件夹)
     
    static void delete(File file){
     File[] childen = file.listFiles();
     if(childen!=null){
      for(int i=0;i<childen.length;i++){
       
       File f=childen[i];
       if(f.isFile()){ //返回条件
        f.delete();
       }else{
        delete(f);
    //递归条件
       }
      }
      file.delete();
     }  
     }
    } 
    同样也是要注意代码中关于递归的两个主要条件,一个都不能少。
  • 相关阅读:
    二分查找算法
    http协议。会话控制cookie、session
    154. Find Minimum in Rotated Sorted Array II
    8. String to Integer (atoi)
    528. Random Pick with Weight
    415. Add Strings
    158. Read N Characters Given Read4 II
    157. Read N Characters Given Read4
    19. Remove Nth Node From End of List
    29. Divide Two Integers
  • 原文地址:https://www.cnblogs.com/shuaishuai1993/p/4532011.html
Copyright © 2011-2022 走看看