数据结构 - 递归
關(guān)注 “弋凡”(YiFan)微信公眾號(hào)吧 記錄簡單筆記 做你的最愛
遞歸介紹
一個(gè)過程或函數(shù)在其定義或說明中有直接或間接調(diào)用自身的一種方法
當(dāng)邊界條件不滿足時(shí),遞歸前進(jìn);當(dāng)邊界條件滿足時(shí),遞歸返回
斐波那契數(shù)列
介紹
斐波那契數(shù)列(Fibonacci sequence),又稱黃金分割數(shù)列、因數(shù)學(xué)家列昂納多·斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數(shù)列”,指的是這樣一個(gè)數(shù)列:1、1、2、3、5、8、13、21、34、……在數(shù)學(xué)上,斐波那契數(shù)列以如下被以遞推的方法定義:F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
代碼
public class Recursive {public static void main(String[] args) {// 遞歸 --- 打印斐波那契數(shù)列 1 1 2 3 5 8 13 21 ...前2項(xiàng)數(shù)據(jù)和System.out.println(new Recursive().Fibonacci(6));}// 打印第n項(xiàng)斐波那契數(shù)列數(shù)據(jù)public int Fibonacci(int i){if(i==1 || i==2 ){return 1;}else {return Fibonacci(i-1)+Fibonacci(i-2);}}}漢諾塔
介紹
漢諾塔:漢諾塔(又稱河內(nèi)塔)問題是源于印度一個(gè)古老傳說的益智玩具。大梵天創(chuàng)造世界的時(shí)候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。并且規(guī)定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動(dòng)一個(gè)圓盤。
代碼
public class Recursive {public static void main(String[] args) {HanoiTest.hanoi(3,'A','B','C');} }class HanoiTest{/*** @param n 共有 n 個(gè)盤子* @param from 開始的柱子* @param in 中間的柱子* @param to 目標(biāo)柱子*/public static void hanoi(int n,char from,char in ,char to){// 只有一個(gè)盤子if (n == 1){System.out.println("第1個(gè)盤子從"+from+"移動(dòng)到"+to);}else { // 無論有多少盤子 都認(rèn)為只有2個(gè)盤子,上面的所有盤子和最下面的一個(gè)盤子// 移動(dòng)上面的所有盤子到中間柱子上hanoi(n-1,from,to,in);// 移動(dòng)下面的盤子System.out.println("第"+n+"個(gè)盤子從"+from+"移動(dòng)到"+to);// 把上面的所有盤子從中間位置移動(dòng)到目標(biāo)位置hanoi(n-1,in,from,to);}} }快來關(guān)注“弋凡”微信公眾號(hào)吧
總結(jié)
- 上一篇: 数据结构 - 数组模拟一般队列
- 下一篇: 用户请求接口信息日志记录