递归操作顺序

问题描述

我在理解此递归代码时遇到了一些麻烦:

class Main {
  public static void main(String[] args) {
    int[] intArray = { 20,35,-15,7,55,1,-22 };

        mergeSort(intArray,intArray.length);

        for (int i = 0; i < intArray.length; i++) {
            System.out.println(intArray[i]);
        } 
    }

    // { 20,-22 }
    public static void mergeSort(int[] input,int start,int end) {

        if (end - start < 2) {
            return;
        }

        int mid = (start + end) / 2;
        mergeSort(input,start,mid);
        mergeSort(input,mid,end);
        merge(input,end);
    }

    // { 20,-22 }
    public static void merge(int[] input,int mid,int end) {
    if (input[mid - 1] <= input[mid]) {
            return;
        }

        int i = start;
        int j = mid;
        int tempIndex = 0;

        int[] temp = new int[end - start];
        while (i < mid && j < end) {
            temp[tempIndex++] = input[i] <= input[j] ? input[i++] : input[j++];
        }

        System.arraycopy(input,i,input,start + tempIndex,mid - i);
        System.arraycopy(temp,tempIndex);
    }
}

有人可以帮我确定代码中的操作顺序吗?当我们调用mergeSort时,我们是在同步完成函数还是在进行下一步并稍后再返回?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...