Merge Sort recurssion : I'm not sure how therecursion works in this method


    private void doMergeSort(int lowerIndex, int higherIndex) {
         
        if (lowerIndex < higherIndex) {
            int middle = lowerIndex + (higherIndex - lowerIndex) / 2;
            // Below step sorts the left side of the array
            doMergeSort(lowerIndex, middle);
            // Below step sorts the right side of the array
            doMergeSort(middle + 1, higherIndex);
            // Now merge both sides
            mergeParts(lowerIndex, middle, higherIndex);
        }
    }

lets say we have an array of index 8. The first middle value is set to 4, then the method recurs and the higher index is set to 4?

so it looks like this?

    private void doMergeSort(int 0, int 4) {

        if (0 < 4) // condition is met {
            int middle = 0 + (4 - 0) / 2;
            // middle value is set to 2
            doMergeSort(lowerIndex, middle);
            // Below step sorts the right side of the array
            doMergeSort(middle + 1, higherIndex);
            // Now merge both sides
            mergeParts(lowerIndex, middle, higherIndex);
       }
    }

