如何分析所有递归调用的流程控制?我使用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];
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;
}
发布于 2018-04-26 16:25:22
我会说,理解它的最好方法是在你的脑海中重新生成流程;)
但如果这对您不起作用,那么我建议使用某种记录器或System.out.println()。这将是最简单的方法,因为它将按照自动执行的顺序记录/打印它。有了一些很好的解释信息,你就可以很容易地理解它,甚至自动分析它,因为它总是具有相同的结构。
您可以从Java获取堆栈跟踪,也可以使用调试器手动完成,但这对您和分析工具来说都比较困难。通过日志记录或打印,您可以将其转换为您喜欢的良好的人/机可读格式。
https://stackoverflow.com/questions/50038020
复制相似问题