合并排序递归不清楚数组的排序是如何实现的请帮助理解代码

merge sort recursion not clear how the sorting of array is achieved please help to understand the code

谁能帮助我理解如何使用合并排序的递归代码进行排序

void merge_sort(int arr[],int low,int up)
{
    int mid;
    int temp[MAX];
    if(low<up)//if more than one element
    {
        mid=(low+up)/2;
        merge_sort(arr,low,mid);//sort lower array
        merge_sort(arr,mid+1,up);//sort upper array
        merge(arr,temp,low,mid,mid+1,up);//merge the two arrays to temp array
        copy(arr,temp,low,up);
    }
}

我认为这是一个重复的问题 来自 this 的解释非常清楚。不在C++中,但我认为排除语言就足够了。