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

2021-08-16 17:55:46 字數 486 閱讀 1076

#淺識

##1、遞迴與迴圈

理論上,任何迴圈都可以重寫為遞迴形式;有些語言沒有迴圈語句,只能使用遞迴。

##2、迴圈改遞迴

(1)發現邏輯、相似性

(2)一定要有「出口」(不然就會死迴圈)

##3、構造相似性

如果沒有明顯的相似性,可能是缺少引數,需要主動構造,與遞推類似

##4、遞迴呼叫

(1)遞迴呼叫僅僅是被調函式正好是主調函式

(2)每次呼叫的層次不同

(3)每次分配形參並非同乙個變數

(4)注意返回的次序

#經典例題

##1、n個球,任意取出m個(不放回),有多少種不同的取法

public class a

public static void main(string args)

}

答案:3

資料結構與演算法 遞迴

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

資料結構1 認識資料結構與演算法

程式 文件 軟體 演算法 資料結構 程式 資料結構與演算法的理論基礎離散數學中的圖論 集合論和關係論等。資料結構課程的內容 於圖論 作業系統 編譯系統 編碼理論及檢索與排序技術等。非數值型程式設計 中資料的 組織方式及其處理 的演算法資料結構的三個方面 邏輯結是式資料的組織形式,與機器無關。4種基本...

11 資料結構與演算法 遞迴

created by chen da 階乘函式就是典型的遞迴 def fact n if n 0 return 1 else return n fact n 1 遞迴的特點 遞迴必須包含乙個基本的出口 base case 否則就會無限遞迴,最終導致棧溢位。比如這裡就是n 0時返回1.遞迴必須包含乙個...