package algorithmimport java.io.File  RecursiveApp {  def main(args: Array[String]): Unit = {    """      |递归的使用:适合于树形结构的遍历      |比较递归方式和循环方式的区别    """.stripMargin    var s0 = System.currentTimeMillis()    val res: Int = fabonacciNumber(30)    println(res)    println("recuise ops cost time "+(System.currentTimeMillis()-s0)/100+"s")    var s1 = System.currentTimeMillis()    println(fabonacci_ori(30))    println("original ops cost time "+(System.currentTimeMillis()-s1)/100+"s")    val path = "C:\Users\Administrator\Desktop\test\NIFI"    val file = new File(path)    getFileList(file)  }  /**    * 斐波那契数的递归实现    * @param n    * @return    */  def fabonacciNumber(n:Int):Int={    if(n==1||n==2){      return 1    }else{      fabonacciNumber(n-1) + fabonacciNumber(n-2)    }  }  /**    * 斐波那契数的循环实现    * @param n    * @return    */  def fabonacci_ori(n:Int):Int={    var num1 = 1    var num2 =1    var fac = 0    for(i <- 2 until(n)){      fac = num1  + num2      num1 = num2      num2 = fac    }    fac  }  /**    * 使用递归方式遍历某个文件名称信息    * @param file    */  def getFileList(file:File){    val files: Array[File] = file.listFiles()    for(i <- 0 until(files.length)){      if(files(i).isFile()){        println(files(i).getName())      }else{        getFileList(files(i))      }    }  }}
收藏 打印