資料結構與演算法基礎 二 遞迴

2021-09-24 02:43:10 字數 1003 閱讀 1848

這裡主要講一下運用遞迴的典型的例子

(斐波那契數列 和 漢諾塔問題)

遞迴:指在乙個方法(函式)的內部呼叫該方法本身的程式設計方式

1.斐波那契數列:1 1 2 3 5 8 13…

①規律:前兩個數之和等於第三個數 1+1=2,1+2=3,3+5=8…

②**實現如下:

package makasa1test;

//用遞迴表示斐波那契數列

public class testfebonnacci

public static int febonnacci(int i)else }}

③輸出結果:13

2.漢諾塔問題

①規律分析:

1.當只有乙個盤子時,直接從a柱移動到c柱

2.當有多個盤子,我們把所有盤子分為:上面所有的盤子和底下乙個盤子

首先將a柱上面所有的盤子移動到b柱

然後把所有上面的盤子從b柱移動到c柱

②**實現如下:

package makasa1test;

public class testhanoi

/***

* @param n 一共有n個盤子

* @param from 開始柱子

* @param in 中間柱子

* @param to 目標柱子

*/public static void hanoi(int n,char from,char in,char to)else}}

③輸出結果:

第乙個盤子從a移動到b

第2個盤子從a移動到c

第乙個盤子從b移動到c

資料結構與演算法 基礎演算法篇 遞迴

遞迴是一種非常高效 簡潔的編碼技巧,一種應用非常廣泛的演算法,比如dfs深度優先搜尋 前中後序二叉樹遍歷等都是使用遞迴。方法或函式呼叫自身的方式稱為遞迴呼叫,呼叫稱為遞,返回稱為歸。基本上,所有的遞迴問題都可以用遞推公式來表示,比如 f n f n 1 1 f n f n 1 f n 2 f n n...

資料結構與演算法 遞迴

一 概念 遞迴是一種高效 簡介的編碼技巧,一種應用很廣泛的演算法,比如dfs深度優先搜尋,前中後序二叉樹遍歷等都是使用遞迴。方法或函式呼叫自身的方式成為遞迴呼叫,呼叫稱為遞,返回成為歸 所有遞迴問題都可以用遞迴公式來表示 二 遞迴優缺點 優點 簡潔 缺點 堆疊溢位風險 可根據調整遞迴呼叫的最大深度來...

資料結構與演算法 認識遞迴

淺識 1 遞迴與迴圈 理論上,任何迴圈都可以重寫為遞迴形式 有些語言沒有迴圈語句,只能使用遞迴。2 迴圈改遞迴 1 發現邏輯 相似性 2 一定要有 出口 不然就會死迴圈 3 構造相似性 如果沒有明顯的相似性,可能是缺少引數,需要主動構造,與遞推類似 4 遞迴呼叫 1 遞迴呼叫僅僅是被調函式正好是主調...