PigeonholeSort
Pigeonhole Sort.
Works by creating "pigeonholes" (buckets) for each value in the range min, max, placing each element into its corresponding hole, then collecting them back in order.
Only applicable to integer-like types with a bounded, reasonably small range.
Time complexity: O(n + range) Space complexity: O(range)