思路
1.确定能否使用递归求解
2.推到出递推关系,即父问题与子问题的关系,以及递归的结束条件
深入到最里层的叫做递
从最里层出来的叫做归
在递的过程中,外层函数内的局部变量(以及方法参数)并未消失,归的时候还可以用到
阶乘
public static void main(String[] args) { int i = f(5); System.out.println(i); } public static int f(int n) { if (n == 1) { return 1; } return n * f(n - 1); } }
打印字符串
public static void p(int n,String str){ if (n==str.length()){ return; } p(n+1,str); System.out.println(str.charAt(n)); }
二分查找文章来源:https://www.toymoban.com/news/detail-465184.html
public static int search(int[] arr, int target) { return f(arr, target, 0, arr.length - 1); } private static int f(int[] arr, int target, int i, int j) { if (i > j) { return -1; } int m = (i + j) / 2; if (target < arr[m]) { return f(arr, target, i, m - 1); } else if (target > arr[m]) { return f(arr, target, m + 1, j); } else { return m; } }
冒泡排序文章来源地址https://www.toymoban.com/news/detail-465184.html
private static void bubble(int[] a, int j) { if (j == 0) { return; } int x=0; for (int i = 0; i < j; i++) { if (a[i] > a[i + 1]) { int t = a[i]; a[i] = a[i + 1]; a[i + 1] = t; x=i; } } bubble(a,x); }
到了这里,关于递归的练习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!