算法 递归与斐波那契

1 递归

  把递归想成方法栈,后进先出。:一层一层深入(依次执行前置代码),直到到达递归终止条件(一定要有终止条件,不再执行自己),:再从底层一层一层返回(依次执行后置代码)。

快速排序:典型的递归前置思想,先执行取中分边,再左右向下递归

归并排序:典型的递归后置思想,先取中左右向下递归,再从最底层一层层向上执行归并

2 复用避免重复计算

   递归时可以把各步结果保存,可以复用。 斐波那契数列就是典型例子

3  斐波那契数

//递归方式实现斐波那契数
	public static long rec_fib(long i) {
		long result = 0;
		if(i <= 0) return 0; //递归终止
		
		if(i == 1 || i == 2) //递归终止
			result = 1;
		else {
                        System.out.println("递归前置");
			result = rec_fib(i-1) + rec_fib(i-2);
                        System.out.println("递归后置");
		}
		return result;
	}

猜你喜欢

转载自blog.csdn.net/shanchahua123456/article/details/85057909
今日推荐