• 递归_java实现


    1.什么是递归算法

          递归算法是一种间接或者直接调用自身的算法。在计算机编程中处理一些问题时使用能很方便的解决一些问题.

    2.递归算法解决问题的特点

         1)递归就是方法里调用自身。
         2)在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。
         3)递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。所以一般不提倡用递归算法设计程序。
         4)在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等,所以一般不提倡用递归算法设计程序。

               在做递归算法的时候,一定要把握住出口,也就是做递归算法必须要有一个明确的递归结束条件。这一点是非常重要的。其实这个出口是非常好理解的,就是一个条件,当满足了这个条件的时候我们就不再递归了。

    3.代码实例(java)

        删除一个目录(所有文件和子目录)

     1 import java.io.File;
     2 
     3 /**
     4  * 
     5  * description: 递归删除带内容的目录 目录为 E:apache-tomcat-7.0.77
     6  * @author aniuzaixian
     7  */
     8 
     9 public class FileDeleteDemo {
    10     public static void main(String[] args) {
    11         // 封装目录
    12         File deleteFile = new File("E:\apache-tomcat-7.0.77");
    13 
    14         deleteFolder(deleteFile);
    15 
    16     }
    17 
    18     private static void deleteFolder(File deleteFile) {
    19         // TODO Auto-generated method stub
    20         // 把目录转换成File[]
    21         File[] fileArray = deleteFile.listFiles();
    22         
    23         //判断对象不是能被删除
    24         if (fileArray != null) {
    25             
    26             //对File数组的每一个对象进行遍历
    27             for (File file : fileArray) {
    28                 if (file.isDirectory()) {
    29                     deleteFolder(file);
    30                 } else {
    31                     System.out.println(file.getName() + "--" + file.delete());
    32                 }
    33 
    34             }
    35             //这里的deleteFile 是对应的每一个迭代后的值,如E:\apache-tomcat-7.0.77\bin ,迭代一次
    36             //之后这里的deleteFile形参对应的实参就是bin文件夹,
    37             //在debug模式下查看代码运行过程,能加深理解
    38             System.out.println(deleteFile.getName() + "---"
    39                     + deleteFile.delete());
    40 
    41         }
    42     }
    43 }
  • 相关阅读:
    python基础一
    IO多路复用
    协程
    线程之互斥锁与递归锁、队列、线程池
    线程
    进程之间的通信与数据共享
    进程
    操作系统的简介
    PyCharm的基本使用指南
    【解决方案】明明安装了库,PyCharm还是提示:No module named bs4 / No module named 'requests'
  • 原文地址:https://www.cnblogs.com/aniuzaixian/p/7282514.html
Copyright © 2020-2023  润新知