import com.sort.SortTestHelper;
import java.io.FileInputStream;
import java.util.*;
/**
* @author xjn
* @since 2019-12-07
*/
public class Test {
public static void mergeSort(int[] array) {
sort(array, 0, array.length - 1);
}
private static void sort(int[] array, int l, int r) {
if (l >= r) {
return;
}
int mid = (l + r) / 2;
sort(array, l, mid);
sort(array, mid + 1, r);
merge(array, l, mid, r);
}
private static void merge(int[] array, int l, int mid, int r) {
int[] aux = new int[r - l + 1];
for (int i = l; i r) {
array[k] = aux[i - l];
i++;
} else if (aux[i - l] > aux[j - l]) {
array[k] = aux[j - l];
j++;
} else {
array[k] = aux[i - l];
i++;
}
}
}
public static void quickSort(int[] array) {
quickSort(array, 0, array.length - 1);
}
private static void quickSort(int[] array, int l, int r) {
if (l >= r) {
return;
}
int p = partition(array, l, r);
quickSort(array, l, p);
quickSort(array, p + 1, r);
}
private static int partition(int[] array, int l, int r) {
int v = array[l];
int j = l + 1;
for (int i = j; i