關於遞迴的一些思考

2021-07-30 14:44:18 字數 1031 閱讀 5541

遞迴函式一般有兩種模式,請看下面。

#include #define cutoff 3

void swap(int *a, int *b)

void insertionsort(int *array, int len)

else

} array[j + 1] = temp;

} } int median3( int a, int left, int right )

void qsort(int a, int left, int right)

; while (a[--j] > pivot){};

if (i < j)

swap(&a[i], &a[j]);

else break;

} swap(&a[i], &a[right - 1]); //restore pivot

qsort(a, left, i - 1);

qsort(a, i + 1, right);

} else insertionsort(a + left, right - left + 1); //初始條件

}

這是快速排序的遞迴演算法,演算法的本質是不完全處理。首先基於溯源的方法進行一部分處理,然後再一步步逼近最終結果。

#include void move(int n, char a, char b, char c) // move n plates from a to c through b 

}

這是經典的漢諾塔問題,上面是一種經典的寫法。本質是力圖進行

完全處理。這是基於從頭開始考慮的演算法,體現出了

遞迴只需要考慮分步的結果,而不需要考慮中間的過程的特性。

下面是遞迴的幾個注意點:

1.要有初始條件,即跳出條件。

2.要有溯源和從源頭出發的思考方式。

3.可以忽略中間過程,假定遞迴的每一步都可以實現。

4.必要時候可以使用遞推式來加以分析。

關於SpringIOC的一些思考

ioc是 依賴倒置原則 的乙個特例,說其是特例,就是說其具有 依賴倒置原則 的性質。依賴倒置原則強調的兩點是 上層模組和下次模組都依賴於抽象,二者之間通過這種抽象的東西聯絡在一起 具體可以依賴於抽象,而抽象不能依賴於具體。我認為spring提倡的 基於介面程式設計 就是為了遵循 依賴倒置原則 其中所...

關於sizeof 的一些思考

今天面試被問到sizeof,回來整理一下。1 定義 sizeof是c c 中的乙個操作符 operator 作用就是返回乙個物件或者型別所佔的記憶體位元組數。msdn上的解釋為 the sizeof keyword gives the amount of storage,in bytes,assoc...

關於創意的一些思考

2016.12.2 22.20 bgm 古風 這週三的下午 27號 難得去聽了乙個講座 關於以創意為核心的動漫產業鏈價值的最大化 其實還是 由於這個話題吸引了我,演講的是上海美影的老廠長,由於時間的關係,給我們講述了在過去幾年美影廠針對傳統 動畫人物的產業鏈的發展以及注重要中國特色動漫。其實,在這幾...