二次递归是快速排序里用到的,所以这次深入分析一下
栈的调用是先进后出的原则
递归方法
private void digui(int i){
i--;
if(i==1){
return;
}
System.out.println(i+"ha");
this.digui(i);//
this.digui(i);
System.out.println(i+"ok");
}
然后i=2时,return,f(3)开始出栈,先走的digui(2)//第二个递归,然后输出2ok
接下来轮到f(4)走到第二个递归了,因为i>1,所以,f(4)出栈停下来了,继续入栈
f(3)出栈,输出2ok,f(4)的第二个递归也走完了,输出3ok
了解了出栈入栈的顺序后就很明了了