菜鳥每天練習 之 遞迴演算法

2021-05-25 13:15:31 字數 648 閱讀 4859

遞迴演算法是把問題轉化為規模縮小了的同類問題的子問題。然後遞迴呼叫函式(或過程)來表示問題的解。

遞迴過程一般通過函式或子過程來實現。 遞迴演算法:在函式或子過程的內部,直接或者間接地呼叫自己的演算法。

遞迴演算法解決問題的特點:

(1) 遞迴就是在過程或函式裡呼叫自身。

(2) 在使用遞迴策略時,必須有乙個明確的遞迴結束條件,稱為遞迴出口。

(3) 遞迴演算法解題通常顯得很簡潔,但遞迴演算法解題的執行效率較低。所以一般不提倡用遞迴演算法設計程式。

(4) 在遞迴呼叫的過程當中系統為每一層的返回點、區域性量等開闢了棧來儲存。遞迴次數過多容易造成棧溢位等。所以一般不提倡用遞迴演算法設計程式。

遞迴演算法要求

遞迴演算法所體現的「重複」一般有三個要求:

一是每次呼叫在規模上都有所縮小(通常是減半);

二是相鄰兩次重複之間有緊密的聯絡,前一次要為後一次做準備(通常前一次的輸出就作為後一次的輸入);

三是在問題的規模極小時必須用直接給出解答而不再進行遞迴呼叫,因而每次遞迴呼叫都是有條件的(以規模未達到直接解答的大小為條件),無條件遞迴呼叫將會成為死迴圈而不能正常結束。

象棋遊戲程式採用的就是遞迴演算法

示例1:計算陣列 第30位值

菜鳥每天練習 之 氣泡排序

氣泡排序是經過n 1趟子排序完成的,第i趟子排序從第1個數至第n i個數,若第i個數比後乙個數大 則公升序,小則降序 則交換兩數.氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2...

演算法 遞迴的練習

leecode面試題16.11 跳水板 leecode1137 第n個泰波那契數 leecode面試題 08.05.遞迴乘法 leecode698.劃分為k個相等的子集 注意1 處理兩個特殊情況 k值小於等於0 shorter值等於longer的情況。k小於等於0這個特殊情況很容易想到,但short...

演算法設計與分析之遞迴演算法練習(下)

遞迴演算法九 整數劃分問題 遞迴演算法十 排隊購票 遞迴演算法十一 楊輝三角 遞迴演算法十二 計算兩個數的最大公約數 遞迴演算法十三 計算乙個正整數中所有的數字之和 遞迴演算法十四 求 1 1 2 1 3 1 n 的和 本部落格其他文章推薦 當n 1時,perm r r 其中r是集合r中唯一的元素 ...