Mybatis_Aniu
业精于勤而荒于嬉!

导航

 

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 }

 

posted on 2017-08-03 22:46  Mybatis_Aniu  阅读(162)  评论(0编辑  收藏  举报