template <typename T>
void
mergesort(
T * const a_left, T * const a_right,
T * const temp_left, T * const temp_right) {
const unsigned len = a_right - a_left;
if (len > 1) {
const unsigned h = len/2;
T * const a_mid = a_left + h;
T * const temp_mid = temp_left + h;
mergesort(a_left, a_mid, temp_left, temp_mid);
mergesort(a_mid, a_right, temp_mid, temp_right);
merge(temp_left, temp_right, a_left, a_mid, a_right);
}
}
This page last modified on 24 January 2006.