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