Java 如何分析该程序中所有递归调用的控制流?
如何分析所有递归调用的流控制? 我使用Netbeans并调试程序,但由于我们必须决定是跨过还是跨入,我希望这是自动完成的,以了解整个控制流程Java 如何分析该程序中所有递归调用的控制流?,java,Java,如何分析所有递归调用的流控制? 我使用Netbeans并调试程序,但由于我们必须决定是跨过还是跨入,我希望这是自动完成的,以了解整个控制流程 static int [] MergeSortt(int [] A2) { if(A2.length<=1) { return A2; } int mid=A2.length/2; int [] left; int[] right; int [] result; left= new int [mid];
static int [] MergeSortt(int [] A2)
{
if(A2.length<=1)
{
return A2;
}
int mid=A2.length/2;
int [] left;
int[] right;
int [] result;
left= new int [mid];
if(A2.length%2==0)
{
right= new int[mid];
}
else
{
right = new int [mid+1];
}
result = new int[A2.length];
for(int i=0;i<mid;i++)
{
left[i]= A2[i];
}
int x=0;
for(int j=mid;j<A2.length;j++)
{
if(x<A2.length)
{
right[x]= A2[j];
x++;
}
}
left =MergeSortt(left);
right= MergeSortt(right);
result = merge(left,right);
return result;
}
static int[]MergeSortt(int[]A2)
{
如果(A2.length我会说理解它的最好方法是通过在你的头脑中重新产生流动;)
但如果这对您不起作用,那么我建议使用某种记录器或System.out.println()。这将是最简单的方法,因为它将按照自动执行的顺序记录/打印。通过一些良好的解释性消息,您可以轻松理解它,甚至自动分析它,因为它始终具有相同的结构
您可以从Java获取stacktrace,也可以使用调试器手动执行,但这对您和分析工具来说都比较困难。通过记录或打印,您可以将其设置为您喜欢的良好的人机可读格式。StackTraceeElement[]elements=Thread.currentThread().getStackTrace();您可以分析调用堆栈