基于JAVA实现归并排序
public class MergeSort {
public static void merge(int[] arr,int low,int mid,int high) {
int[] b= new int[arr.length];
int i,j,k;
for(i=0;i<=arr.length-1;i++) {
b[i]=arr[i];
}
for(i=low,j=mid+1,k=i;i<=mid&&j<=high;k++) {
if(b[i]<=b[j])
arr[k]=b[i++];
else
arr[k]=b[j++];
}
while(i<=mid)
arr[k++]=b[i++];
while(j<=high)
arr[k++]=b[j++];
}
public static void mergeSort(int[] arr,int low,int high) {
if(low<high) {
int mid=(high+low)/2;
mergeSort(arr, low, mid);
mergeSort(arr, mid+1, high);
merge(arr, low, mid, high);
}
}
public static void main(String[] args) {
int[] arr= {7,6,5,4};
int len=arr.length-1;
mergeSort(arr,0,len);
for(int i=0;i<=len;i++) {
System.err.println(arr[i]+" ");
}
System.err.println(" Merge sort");
}
}
对两个子序列划分的规则
![两个子表划分规则](https://i-blog.csdnimg.cn/blog_migrate/64ec5873e1ecb9d5364f163f62f34260.jpeg)