简洁代码
public class ZZ {
public static void main(String[] args) {
int[] arr = {3, 4, 2, 5, 7, 0, 9, 8, 11, 1, 6};
mergeSort(arr);
}
public static void mergeSort(int[] arr) {
int len = arr.length;
int k = 1;
while (k < len) {
MergePass(arr, k, len);
k *= 2;
}
}
private static void MergePass(int[] arr, int k, int len) {
int i = 0;
while (i + 2 * k - 1 < len) {
merge(arr, i, i + k - 1, i + 2 * k - 1);
i += 2 * k;
}
if (i + k - 1 < len - 1) {
merge(arr, i, i + k - 1, len - 1);
}
}
private static void merge(int[] arr, int low, int mid, int high) {
int[] temp = new int[high - low + 1];
int i = low;
int j = mid + 1;
int k = 0;
for (; i <= mid && j <&