Uses fork-join merge decomposition with independent output ranges.
Recursively sort the two halves.
Place a midpoint from one run by binary search in the other.
Recursively merge the two disjoint output ranges.