递归:
从形式上看,就是自己调用自己的函数
从内涵上说,他是规律的总结(数学归纳法)
特征:
(1).函数里面的代码中一定调用了函数本身
(2).递归函数很容易引起内存崩溃
(3).递归函数的效率不是太高
(4). 特别好理解,代码简洁
如何写:
(1).要找到递归函数的终结条件
(2).要总结规律
(3).时刻记住你写次函数的目的是什么。
爬虫:
广度优先的算法,深度优先的算法(递归方式的一种体现)
1 //1+2+3+。。。 2 public static int add(int num) { 3 if(num == 1) {return 1;} 4 return add(num-1)+num; 5 }
1 //1*2*3*。。。 2 public static int jc(int num) { 3 if(num == 0) {return 1;} 4 if(num == 1) {return 1;} 5 return jc(num-1)*num; 6 }
1 //费氏数列 兔子 2 public static int tuzi(int n) { 3 if(n == 1) {return 1;} 4 if(n == 2) {return 1;} 5 return tuzi(n-1)+tuzi(n-2); 6 }
1 //打印目录 2 public static void filePrint(String fileName,String n) { 3 File file = new File(fileName); 4 try { 5 String[] fileArr = file.list(); 6 for(int i=0;i<fileArr.length;i++) { 7 System.out.println(n+fileArr[i]); 8 filePrint(fileName+fileArr[i]+"/",n+n); 9 } 10 }catch(Exception e) { 11 //System.out.print(fileName); 12 return; 13 } 14 15 }