通用的递归思路
对于递归类型的问题,时刻记住两步,先写递推公式,在写找出终止条件,最后在翻译成递归代码。
切记:写递归程序时,千万不要把自己绕进去,去想清楚每一步的细节,本来脑容量就不够,才把复杂的步骤交给计算机去计算。一开始老是想搞清楚每一步具体的细节,越想越晕,心里不服输的自己,越晕就想整明白,然后就晕晕晕…
所以切记,切记,千万不要把自己绕进去,时刻记着:
先写递推公式,找出终止条件,最后在翻译成递归代码,就OK。
题目描述
给定一个数组,请用递归的方式判断数组是否有序。
分析
先写出递推公式:
递推公式:fun(arr,n) =
(arr[n-1] < arr[n-2])
fun(arr,n-1)
基本条件:n == 1
代码
public static int isArraySorted(int[] arr,int n) {
if(n == 1) return 1;
return arr[n-1] < arr[n-2] ? 0 : isArraySorted(arr,n-1);
}