编辑代码

#include <stdio.h>

int merge(int arr[],int arrStart,int mid,int arrEnd){
    int i =arrStart;
    int j=mid;  
	int len =arrEnd-arrStart;
    if(len<2){
        return 0;
    }
  
    int temp[len];
    int tempindex=0;
    while(i<mid && j< arrEnd){
        if(arr[i]>arr[j]){
            temp[tempindex++]=arr[j];
            j++;
        }else{
            temp[tempindex++]=arr[i];
            i++;
        }
    }
    while(i<mid){
        temp[tempindex++]=arr[i++];
    }
    while(j<arrEnd){
        temp[tempindex++]=arr[j++];
    }
    for (tempindex=0,i = arrStart; tempindex < len && i < arrEnd ;tempindex++,i++){
            arr[i]=temp[tempindex];

    }
    return 1;

}
int mergeSort(int arr[],int arrStart,int arrEnd){
    int arrlen =arrEnd-arrStart;
    if(arrlen == 1){
        return 1;
    }
    int mid =arrStart + arrlen/2;
    mergeSort(arr,arrStart,mid);
    mergeSort(arr,mid,arrEnd);
    return merge(arr,arrStart,mid,arrEnd);
}
int main () {
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
    int arr[]={1,6,6,9,5,2,3,11,58};
    mergeSort(arr,0,9);
    for(int i=0;i<9;i++){
        printf("%d ",arr[i]);
    }

    return 0;
}