遞迴的形式過程

2022-08-09 23:12:17 字數 1824 閱讀 9755

前言:

迭代的是人,遞迴的是神。——l. peter deutsch

展開遞迴呼叫,是分析遞迴的利器。

進行數學歸納,是使用遞迴的利器。

對初學者而言,講一大堆理論,不如舉乙個例子。

本系列分三篇分析及使用遞迴。

第一篇——遞迴呼叫的分析

第二篇——遞迴呼叫的初步使用

第三篇——遞迴呼叫的高階使用

遞迴函式一般有如下特徵:

recursionfun()

//第一部分:遞迴結束條件,前期處理。

if 遞迴結束條件

return;

//第二部分:遞迴呼叫。

recusionfun();

//第三部分:遞迴呼叫後期處理,也可能有return語句。

下面看遞迴呼叫的4種形式:

1、

void recursionfun(int n)

cout << n;

recursionfun(n - 1);

}

recursionfun(3)輸出321.

2、

void recursionfun(int n)

recursionfun(n - 1);

cout << n;
}
recursionfun(3)輸出123.
3、

void recursionfun(int n)

cout << n;

recursionfun(n - 1);

cout << n;

}

recursionfun(3)輸出321123.
4、

int recursionfun(int n)

int sum = 0;

sum = n + recursion(n - 1);

return sum;

}

recursionfun(3)輸出6.
這裡為了簡便以recursionfun(2)為例。

void recursionfun(int n)

cout << n;

recursionfun(n - 1);

}

記住,把遞迴呼叫展開分析!如下圖。

快速排序的遞迴形式與非遞迴形式 C 版

快排的理解 設要排序的陣列是 a 0 a n 1 首先任意選取乙個資料 通常選用陣列的第乙個數 作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。值得注意的是,快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產...

歸併排序的遞迴形式與非遞迴形式 C 版

歸併排序的核心思想是分治法,即將待排序資料分成多個小塊,對每個小塊進行排序,然後在兩兩合併小塊,最終完成對整體的排序 時間複雜度是nlogn 輸入 25,12,17,21,15,48 結果 遞迴實現 遞迴類似於對此方法的場景再現,即先對整體進行劃分,然後對劃分後的部分進行排序 對遞迴函式的理解可以認...

C 二分查詢的遞迴形式和非遞迴形式

二分查詢,又名折半查詢,在有序陣列中查詢元素的效率很高 缺點就是只能查詢有序表,因此適用於不用頻繁插入刪除的有序表 如果沒有二分查詢,通過遍歷來查詢表中元素的時間複雜度為o n 而二分查詢時間複雜度為o lgn 二分查詢的非遞迴形式 int binaryresearchnonr int arr,in...