Java 递归运算顺序

Java 递归运算顺序,java,recursion,synchronous,recursive-datastructures,Java,Recursion,Synchronous,Recursive Datastructures,我在理解此递归代码时遇到一些问题: class Main { public static void main(String[] args) { int[] intArray = { 20, 35, -15, 7, 55, 1, -22 }; mergeSort(intArray, 0, intArray.length); for (int i = 0; i < intArray.length; i++) { Syste

我在理解此递归代码时遇到一些问题:

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

        mergeSort(intArray, 0, intArray.length);

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

    // { 20, 35, -15, 7, 55, 1, -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, start, mid, end);
    }

    // { 20, 35, -15, 7, 55, 1, -22 }
    public static void merge(int[] input, int start, 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, 0, input, start, tempIndex);
    }
}
主类{
公共静态void main(字符串[]args){
int[]intArray={20,35,-15,7,55,1,-22};
合并排序(intArray,0,intArray.length);
for(int i=0;i如果(输入[mid-1]调试器System.out.println,甚至pen和papper对于这种情况都是很好的工具。@JoakimDanielson调试器会很好,但我目前正在repl.it上运行代码,我不相信该网站有此功能。由于这台计算机是用于工作的,所以不要在这台计算机上安装运行库。@Matt print当代码的每一部分都被删除时,ing可以帮助找到顺序reached@Nosrep是的,只使用指纹找到我的位置可能更好。会的,谢谢你的帮助。@JoakimDanielson是的,只使用指纹找到我的位置可能更好。会的,谢谢你的帮助调试器、System.out.println,甚至pen和papper都是gRET工具适用于这种情况。@JoakimDanielson调试器会很好,但我目前正在repl.it上运行代码,我不相信该网站有此功能。不幸的是,此计算机上没有安装运行时,因为它是用于工作的。@Matt定期打印有助于在代码的每个部分都可用时找到顺序ched@Nosrep是的,用指纹找到我的位置可能会更好。会的,谢谢你的帮助。@JoakimDanielson是的,用指纹找到我的位置可能会更好。会的,谢谢你的帮助