資料結構之遞迴演算法

2021-10-09 23:05:48 字數 1351 閱讀 5133

迭代思想

遞迴事實上就是函式自己呼叫自己,我們先一起看下**的實現,然後再來分析:

例如 i=5 的時候,不停地呼叫自身,只有當 i=0,1 時才可以計算結果。

在高階語言中,函式呼叫自己和呼叫其他函式並沒有本質的不同。我們把乙個直接呼叫自己或通過一系列的呼叫語句間接地呼叫自己的函式,稱作遞迴函式。

迭代使用的是迴圈結構,遞迴使用的是選擇結構。

編寫乙個遞迴函式,實現將輸入的任意長度的字串反向輸出的功能。例如輸入字串finshc,則輸出字串chsnif。

同學們一般會採用將該字串存放到乙個陣列中,然後將陣列元素反向的輸出即可。這道題要求輸入是任意長度,所以不用遞迴的話,實現起來會比較麻煩。

我們說過,遞迴它需要有乙個結束的條件,那麼我們可以將「#」作為乙個輸入結束的條件。

void

print()

這其實也是乙個經典的遞迴問題。

#include 

using namespace std;

//將 n 個盤子從 x 借助 y 移動到 z

未完待續

資料結構和演算法之遞迴

遞迴問題 方法自己呼叫自己,每次呼叫傳入不同的值 public class recursiontest public static void test int n system.out.println n n public class recursiontest02 public static in...

資料結構與演算法之遞迴

以階乘舉例 def factorial n 階乘 if n 0 return 1 else return n factorial n 1 函式每被呼叫一次就會被壓棧,而且引數減一再次呼叫再次壓棧,當達到終止條件時,遞迴就會終止,從棧底往上返回return的結果。二分查詢 終止條件 找到終止 目標值等...

資料結構 演算法 遞迴

遞迴在較為高階的數演算法實現中是常用的,比如深度優先搜尋,暴力搜尋。下面展示較為簡單的遞迴 執行的過程中。public void recurisve recurisve system.out.println str test public void test 測試 依次輸入是 k i h a 依次輸...