递归法:
1)定义:
递归就是自己调用自己。
2)另外:
能不用递归就不要用递归,因为递归其实就是系统为你压栈了,系统会把所有的东西都压栈(不管你用不用得到),所以造成了递归耗内存。可以用循环来代替递归,自己实现压栈,压入自己需要用到的东西就好。
3)如何计算递归的时间复杂度
4)例子:
(1)问题描述:
求全排列。
(2)基本思路:
就是第一层perm固定了第一个元素arr[0],第二层固定了第二个元素arr[1],以此类推,到最后一个的时候就输出数组。
(3)Java代码实现:
public class digui {
public static void main(String[] args) {
int arr[]= {
1,2,3,4};
perm(arr,