
package sort;
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] arr = {6,4,8,1,5};
int[] temp = new int[5];
mergeSort(arr,0,4,temp);
System.out.println(Arrays.toString(arr));
}
public static void mergeSort(int[] arr, int left, int right, int[] temp){
if (left < right){//只要不是剩一个元素就不停的拆分数组
int mid = (left + right)/2;
mergeSort(arr, left, mid, temp);
mergeSort(arr, mid+1, right, temp);
merge(arr,left,mid,right,temp);
}
}
//将arr[] 中的 left到mid mid+1到right 这两个数组排序后放入arr left到right
public static void merge(int[] arr, int left, int mid, int right, int[] temp) {
int i = left;
int j = mid + 1;
int t = 0;
//从小到大放进temp里,直到一个数组放完
while (i<=mid && j<=right){
if (arr[i]欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)