The [radix sort] implementation is orders of magnitude faster than shell sort for character vectors, in part thanks to clever use of the internal CHARSXP table.
That is from R’s documentation on
sort. I thinking they are using it somehow.
These is still a gap but the difference looks small on 10m string. I think there is 20%-30% performance gap still.