public static void mergeSort(int arr[],int start,int end,int temp[]){
int mid=(start+end)/2;
if(start<end){//当数组的个数大于2个的时候
mergeSort(arr,start,mid,temp);
mergeSort(arr,mid+1,end,temp);
merge(arr,start,mid,end,temp);
}
}
public static void merge(int arr[],int start,int mid,int end,int temp[]){
int i=start;
int j=mid+1;
int index=0;
while(i<=mid&&j<=end){
if(arr[i]<=arr[j]){
temp[index++]=arr[i++];
}else{
temp[index++]=arr[j++];
}
}
while(i<=mid){
temp[index++]=arr[i++];
}
while(j<=end){
temp[index++]=arr[j++];
}
index=0;
while(start<=end){
arr[start++]=temp[index++];
}
}
并归排序
最新推荐文章于 2023-09-03 20:36:33 发布