java 归并排序

版权声明:本文全部是胡说八道,如果你喜欢,可随意转载 https://blog.csdn.net/robinsongsog/article/details/79941707
import java.util.Arrays;
public class MergeSort {

    public static void merge(int[] a, int low, int mid, int high) {
	int [] temp = new int[high - low + 1];
	int i = low;
	int j = mid + 1;
	int k = 0;

	while (i <= mid && j <= high) {
	    if (a[i] < a[j]) {
		temp[k++] = a[i++];
	    } else {
		temp[k++] = a[j++];
	    }
	}

	while (i <= mid) {
	    temp[k++] = a[i++];
	}

	while (j <= high) {
	    temp[k++] = a[j++];
	}

	for (int k2 = 0; k2 < temp.length; k2++) {
	    a[k2 + low] = temp[k2];
	}
    }

    public static void mergeSort(int[] a, int low, int high) {
	int mid = (low + high) /2;
	if (low < high) {
	    mergeSort(a, low, mid);

	    mergeSort(a, mid + 1, high);

	    merge(a, low, mid, high);

	    
	}
}
    

      public  static void main(String[] args)
{
     int[] arr = {1, 3, 5, 9, 1, 3, 90};
      mergeSort(arr, 0, arr.length - 1);
      System.out.println(Arrays.toString(arr));
}
}


猜你喜欢

转载自blog.csdn.net/robinsongsog/article/details/79941707