递归函数(C语言)
1、定義
遞歸函數:直接或者間接調用函數自身
2、使用方式?
1)使用環境
解決問題的時候,解決問題的思路轉化與問題本身的問題。
2)設計思路
1、明確問題是否符合遞歸函數的函數模型
2、思考需要實現的功能與參數之間的關系
3、遞歸到一定程度可以得出問題的解,并且有一個結束函數可以跳出遞歸
4、要呈現出第n層與第n-1層的遞推關系
3)實例分析
問題:設計一個遞歸函數,實現求一個一維數組元素和的功能
1、????????求和 --> a[0]+a[1]+.......+a[n-1]+a[n]
? ? ? ? ??????符合遞歸模型
2、? ? ? ? a[n]+a[n-1]
3、? ? ? ? 遞歸到a[1]+a[0],既可以跳出遞歸
int array_sum(int a[], int n) {if(n == 1)//當n等于1的時候,就可以跳出循環,因為在下面的遞歸里面已經實現a[1]+a[0]{return a[0];}else{return array_sum(a,n-1)+a[n-1];//因為n表示一維數組的數目,所以表示角標的時候要使用n-1} }3、快速排序(遞歸思想)
1、對于一個數組,從中間位置選擇一個元素,以該元素為界 將其余元素劃分成兩個子集
2、一個子集中所有的元素都小于該元素,另外一個子集的所有元素都大于該元素
3、對這樣的兩個子集 遞歸 執行這一過程
4、當某一個子集的元素個數小于2時,這個子集就不需要再排序,終止遞歸
總結
- 上一篇: 谷歌添加JSON格式化工具 jsonha
- 下一篇: tm1650中文资料_ds3231中文资