Sorts integers digit by digit from the most significant to the least significant 2-bit group, distributing elements into up to four buckets per pass and then recursively sorting each bucket for the next digit.
Processing the most significant digit first allows early termination, sub-buckets whose elements already agree on all remaining digits need no further work, giving it adaptive behaviour similar to a comparison sort.