Choosing the optimal radix/number-of-buckets when sorting n-bit integers using radix sort
Minimizing run time is a very different question from minimizing operation counts. Sorting large data sets tends to be memory bound, so the goal of optimization is not to reduce the number of operations, but to try and do make efficient use of memory &mdash; for example,


do as much work as possible in L1 cache
use bandwidth to main memory efficiently by writing full cache lines
avoid overflowing the TLB by too much


Increasing the number of buckets works against all three points; it does no good to complete a radix sort in two passes if each pass takes three times as long as each pass of a four pass implementation!