public class IsAccendListRecursive { /*递归判断数组是否升序 * if a Integer array is ascending,return true * use recursion */ public static void main(String[] args){ IsAccendListRecursive is=new IsAccendListRecursive(); int[][] a={ {1,2,3,4,5,6,7}, {8,2,3,4,5,6,7}, {1,2,3,8,5,6,7}, {1,2,3,4,5,6,0}, }; for(int[] b:a){ is.isAccendListRecursive3(b,0,b.length-1); System.out.println(is.result); } } //wrong answer public boolean isAccendListRecursive(int[] a,int s,int e){ boolean re=false; if(s==e){ //one element re=true; }else if(s==e-1){//two elements re=a[s]<a[e]; }else{ re=isAccendListRecursive(a,s+1,e); } return re; } //look at this--(a[s]<a[s+1])--is it recursion any more? public boolean isAccendListRecursive2(int[] a,int s,int e){ boolean re=false; if(s==e){ re=true; }else{ re=a[s]<a[s+1]&&isAccendListRecursive2(a,s+1,e); } return re; } private boolean result; //return the min element of the array that has been checked public int isAccendListRecursive3(int[] a,int s,int e){ if(s==e){ result=true; }else{ int min=isAccendListRecursive3(a,s+1,e); result=result&&(a[s]<min); } return a[s]; } }