私はいくつかの入力に取り組まなければならないことを知っています。しかし、コードはどのようになりますか?仮定する
public static void mergeSort(Comparable[] a, int left, int right) {
if (right <= left) return;
int mid = left + (right – left) / 2;
mergeSort(a, left, mid);
mergeSort(a, mid + 1, right);
merge(a, left, mid, right);
}
public void merge(Comparable[] a, int left, int mid,int right) {
for (int k = left; k <= right; k++) aux[k] = a[k];
int i = left; j = mid + 1;
for (int k = left; k <= right; k++) {
if (i > mid) a[k] = aux[j++];
else if (j > right) a[k] = aux[i++];
else if (less(aux[j], aux[i]) a[k] = aux[j++];
else a[k] = aux[i++];
}
}
マージソート法です。