遞迴的幾種用法

2021-08-24 19:55:00 字數 946 閱讀 1919

以前一直對遞迴發怵,一想到它就「渾身哆嗦」,但是遞迴確實是非常精髓和精妙的,有時候處理問題會非常的方便。比如排序,遍歷目錄下的檔案什麼的,但是老這麼怕他也不是個辦法...

先看乙個排序的:

現有122345六個數,要求用乙個main函式實現所有不同的排序並列印出來,要求:4不能在第三位,3和5不能相連(某公司筆試題)

public static list list = new arraylist();

/*** 構造字串的所有排序組合

* * @param str

* 將要組合成的字元

* @param nstr

* 源字串集

*/public static void group(string str, string nstr)

group(temp, nstr);}}

}}/*** 從源字串集中去除將要組合成的字元

* * @param str

* 將要組合成的字元

* @param nstr

* 源字串集

* @return 剩餘字串集

*/public static string getrest(string str, string nstr)

}return rest;

}

再就是關於目錄結構遍歷的了:

static void getdir(string str)

}for(int j=0;j}}

public static void main(string args)

其實遞迴關鍵要做好兩點吧,第一是要找到遞迴結束的條件,第二是要組織好遞迴的呼叫方法

遞迴的用法

遞迴是一種方法內呼叫自身方法的一種程式設計技術,像一些階乘 求和等數學問題可以實現,不過複雜度會提高,最能體現遞迴之美的當屬漢諾塔問題。同樣我們用遞迴實現了斐波那契數列和三角數字。漢諾塔問題 如下圖所示,要求將乙個座上的盤子全部搬運到最後乙個支柱上,有乙個輔助支柱。搬運規則 1.一次只能移動一張盤子...

JS遞迴的用法JavaScript遞迴)

函式中用呼叫函式自己,此時就是遞迴,遞迴一定要有結束條件 function f1 f1 瀏覽器崩潰,因為沒有結束條件 死迴圈 改進如下 var i 0 function f1 console.log 從前有座山,山里有個廟,廟裡有個老和尚給小和尚講故事 f1 遞迴實現 求n個數字的和 n 5 5 4...

Intent的幾種用法

returnit new intent intent.action delete,uninstalluri install apk uri installuri uri.fromparts package null returnit new intent intent.action package ...