It might just be faster because the author is comparing their hybrid radix sort implementation to std::sort (which is comparison-based). Would be more valid to compare to Boost's "spreadsort" which is similarly a hybrid radix sort algorithm (and also outperforms std::sort).
Why doesn't the STL switch to the hybrid sorting approach?
Writing a Faster Sorting Algorithm
31–35 of 35 posts
Re: Writing a Faster Sorting Algorithm
#32Earlier quoted context omitted.
This is correct. The C++ standard specifies that sort must have a big-O complexity of n log(n). This can be seen on pdf page 925 of this working draft from 2014 [1]. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n429...
So providing a faster sort would be a violation? The standard doesn't seem to say "or better" here, but I know that in other places it does (or least used to say something similar).
Note that this wouldn't be true if the standard said that it has to be Θ(n log n).
Re: Writing a Faster Sorting Algorithm
#33Re: Writing a Faster Sorting Algorithm
#34Earlier quoted context omitted.
This is correct. The C++ standard specifies that sort must have a big-O complexity of n log(n). This can be seen on pdf page 925 of this working draft from 2014 [1]. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n429...
So providing a faster sort would be a violation? The standard doesn't seem to say "or better" here, but I know that in other places it does (or least used to say something similar).
If something is O(1) it's also O(n) and O(n!), since it's an upper bound.