Loading

2.分治策略递归学习

一.什么是分治策略?

我的总结是:大分小,小合大。
这句话将贯穿下面所有递归算法。

首先简单了解下递归:

1.用例子学习递归

1)阶乘函数

阶乘函数的定义:

当n=0时,n!=1
当n>0时,n!=n(n-1)!

从上面我们可以知道递归的边界条件为n=0,递归方程也就是n(n-1),由此,我们可以写出下面代码:

int jieCheng(int n){
   
    if(n==0) return 1;
    return jieCheng(n-1)*n;
}

实例展示

public class RecursionStudy {
   

    /**
     * 阶乘算法的递归实现
     * @param n 
     * @return
     */
    static int jieCheng(int n){
   
        if(n==0) return 1;
        return jieCheng(n-1)*n;
    }

    public static void main(String[] args) {
   
        System.out.println(jieCheng(4));
    }
}
2)斐波那契数

问题描述:给出一个数,求出它的斐波那契数
1,1,2,3,5,8,13是一个斐波那契数列,当n=5时,它的斐波那契数为8,依次类推。
其公式定义为:

n<=1时, F(n)=1
n>1时,  F(n)=F(n-1)+F(n-2)

很明显我们可以用递归的方式进行问题解决:

public int Fib(int n){
   
posted @ 2020-03-14 10:23  文牧之  阅读(9)  评论(0)    收藏  举报  来源