package basic; /** * Created by ozc on 2018/3/16. * * @author ozc * @version 1.0 */ public class Recursion { public static void main(String[] args) { int[] arrays = {1, 1, 2, 3, 5, 8, 13, 21}; //bubbleSort(arrays, 0, arrays.length - 1); //int fibonacci = fibonacci(10); System.out.println("å ¬ä¼å·ï¼Java3y--------------------------------------------------" ); hanoi(3, 'A', 'B', 'C'); System.out.println("å ¬ä¼å·ï¼Java3y--------------------------------------------------" ); } /** * æ±è¯ºå¡ * @param n n个çå * @param start èµ·å§æ±å * @param transfer ä¸è½¬æ±å * @param target ç®æ æ±å */ public static void hanoi(int n, char start, char transfer, char target) { //åªæä¸ä¸ªçåï¼ç´æ¥æ¬å°ç®æ æ±å if (n == 1) { System.out.println(start + "---->" + target); } else { //èµ·å§æ±ååå©ç®æ æ±åå°çåé½ç§»å¨å°ä¸è½¬æ±åä¸(é¤äºæå¤§ççå) hanoi(n - 1, start, target, transfer); System.out.println(start + "---->" + target); //ä¸è½¬æ±ååå©èµ·å§æ±åå°çåé½ç§»å¨å°ç®æ æ±åä¸ hanoi(n - 1, transfer, start, target); } } /** * è´¹æ³¢çº³åæ°å * @param n * @return */ public static int fibonacci(int n) { if (n == 1) { return 1; } else if (n == 2) { return 1; } else { return (fibonacci(n - 1) + fibonacci(n - 2)); } } public static void bubbleSort(int[] arrays, int L, int R) { int temp; //å¦æåªæä¸ä¸ªå ç´ äºï¼é£ä»ä¹é½ä¸ç¨å¹² if (L == R) ; else { for (int i = L; i < R; i++) { if (arrays[i] > arrays[i + 1]) { temp = arrays[i]; arrays[i] = arrays[i + 1]; arrays[i + 1] = temp; } } //第ä¸è¶æåºåå·²ç»å°æå¤§å¼æ¾å°æ°ç»æåé¢äº //æ¥ä¸æ¥æ¯æåº"æ´ä½"çæ°æ®äº bubbleSort(arrays, L, R - 1); } } /** * éå½ï¼æ¾åºæ°ç»æå¤§çå¼ * * @param arrays æ°ç» * @param L 左边çï¼ç¬¬ä¸ä¸ªæ° * @param R å³è¾¹çï¼æ°ç»çé¿åº¦ * @return */ public static int findMax(int[] arrays, int L, int R) { //å¦æè¯¥æ°ç»åªæä¸ä¸ªæ°ï¼é£ä¹æå¤§çå°±æ¯è¯¥æ°ç»ç¬¬ä¸ä¸ªå¼äº if (L == R) { return arrays[L]; } else { int a = arrays[L]; int b = findMax(arrays, L + 1, R);//æ¾åºæ´ä½çæå¤§å¼ if (a > b) { return a; } else { return b; } } } /** * éå½ï¼1+2+3+4+....+100(n) * * @param n è¦å å°çæ°åï¼æ¯å¦é¢ç®ç100 * @return */ public static int sum(int n) { if (n == 1) { return 1; } else { return sum(n - 1) + n; } } }