C++ RadixSort 高效方式

C++ RadixSort efficient ways

我正在尝试在 C++ 中实现 Radix Sort 算法,试图对 int 数组进行排序。
据我所知,有两种可能的方式:

  1. 按二进制数字排序,例如使用按位运算符逐位获取并将它们排序在 2 个桶(0 和 1)中。

  2. 按小数位排序,共 10 个桶(0 到 9)。

不过,我看不出这两者中哪一个更有效率。仅在 2 个桶中排序似乎效率很低,但使用十进制数字意味着无法使用快速按位运算符,而我必须使用特别慢的 %/ 运算符。

那么哪一个会更快? (PS:我正在开发的代码将用在时间非常紧迫的部分,这就是我问的原因)

通常将一个排序为 2 的幂数的桶,这样可以减少传递次数并从按位运算中获益。