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