示例#1
0
  private static void merge(Comparable<?> a[], Comparable<?> aux[], int lo, int mid, int hi) {
    assert Helper.isSorted(a, lo, mid);
    assert Helper.isSorted(a, mid + 1, hi);

    for (int k = lo; k <= hi; k++) aux[k] = a[k];

    int i = lo, j = mid + 1;
    for (int k = lo; k <= hi; k++) {
      if (i > mid) a[k] = aux[j++];
      else if (j > hi) a[k] = aux[i++];
      else if (Helper.less(aux[j], aux[i])) a[k] = aux[j++];
      else a[k] = aux[i++];
    }
  }