but it can at least be made to work when the items at least just define a subtraction operator which returns an integral value.
Yeah, right.

Code:
Half-sort.cpp
58.	Mid = (Min + Max) / 2;
81.	if (Max == Min + 1)