It is necessary to implement a downward merge sort using the abstract exchange merge method. Here is the abstract exchange merge function:
template <class Item> void merge(Item a[], int l, int m, int r) { int i, j; static Item aux[maxN]; for (i = m + 1; i > l; i--) aux[i - 1] = a[i - 1]; for (j = m; j < r; j++) aux[r + m - j] = a[j + 1]; for (int k = l; k <= r; k++) if (aux[j] < aux[i]) a[k] = aux[j--]; else a[k] = aux[i++]; } How to make this sorting descending, that is, recursive?