本文共 1297 字,大约阅读时间需要 4 分钟。
package algorithmimport java.io.Fileobject 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)) } } }}
转载地址:http://dzaal.baihongyu.com/