么么哒:
分享一些Java中一些简单的小算法
递归算法简单的来说就是自己调用自己,可以把一些复杂的问题转化成类似的小问题,然后通过调用自己求解,跟框架的 write less,do more的差不多.
但是在使用递归之后,虽然代码量会大大减少看起来很简洁,但是递归算法运行效率很低,而且很容易造成死循环.虽然不推荐开发使用,但对于自己理解一些复杂的问题还是很方便的.
下面就是几个简单的例子:
遍历文件夹
要求遍历出指定文件夹下的所有子文件以及子文件夹里的子文件
public class recursion {
public static void main(String[] args) {
File file = new File(path);
showFileOfDir(file);
}
//遍历文件夹的方法
public static void showFileOfDir(File dir) {
//获取到当前文件夹的所有子文件以及子文件夹
File[] files = dir.listFiles();
//循环遍历
for (File file : files) {
//如果是文件夹,再次遍历
if (file.isDirectory()) {
showFileOfDir(file);
} else {
//是普通的文件就直接打印输出
System.out.println(file);
}
}
}
}
爬楼梯算法
假设有N阶台阶,每次上的时候只能跨一阶或者两阶,求一共有多