如何分析该程序中所有递归调用的控制流程?

时间:2018-04-26 08:13:39

标签: 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];

    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;
}

1 个答案:

答案 0 :(得分:0)

我想说理解它的最好方法是重新思考你的思想流程;)

但是,如果这对你不起作用,那么我建议使用某种记录器或System.out.println()。这将是最简单的方法,因为它将按照自动执行的顺序记录/打印它。通过一些好的解释性消息,您可以轻松理解它,甚至可以自动分析它,因为它总是具有相同的结构。

您可以从Java获取堆栈跟踪或使用调试器手动完成,但对您和分析工具来说将更难。通过记录或打印,您可以使用您喜欢的良好的人机/机器可读格式。