Radix sort of input.
Note that this implementation of non-inplace radix sort only requires input to be a BidirectionalRange not a RandomAccessRange.
Note that input can be a BidirectionalRange aswell as RandomAccessRange.
radixBitCount is the number of bits in radix (digit)
TODO make radixBitCount a template parameter either 8 or 16, ElementType.sizeof must be a multiple of radixBitCount
TODO input[] = y[] not needed when input is mutable
TODO Restrict fun.
TODO Choose fastDigitDiscardal based on elementMin and elementMax (if they are given)
https://probablydance.com/2016/12/27/i-wrote-a-faster-sorting-algorithm/
https://github.com/skarupke/ska_sort/blob/master/ska_sort.hpp
http://forum.dlang.org/thread/vmytpazcusauxypkwdbn@forum.dlang.org#post-vmytpazcusauxypkwdbn:40forum.dlang.org
See Implementation
Radix sort of input.
Note that this implementation of non-inplace radix sort only requires input to be a BidirectionalRange not a RandomAccessRange.
Note that input can be a BidirectionalRange aswell as RandomAccessRange.
radixBitCount is the number of bits in radix (digit)
TODO make radixBitCount a template parameter either 8 or 16, ElementType.sizeof must be a multiple of radixBitCount
TODO input[] = y[] not needed when input is mutable
TODO Restrict fun.
TODO Choose fastDigitDiscardal based on elementMin and elementMax (if they are given)