C ++ RadixSort高效方法

时间:2017-03-19 09:18:23

标签: c++ sorting radix-sort

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

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

  2. 按十进制数字排序,即10个桶(0到9)。

  3. 但我不知道两者中的哪一个会更有效率。仅在2个桶中进行排序似乎效率很低,但使用十进制数字意味着不能使用快速按位运算符,而是必须使用特别慢的%/运算符。 / p>

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

1 个答案:

答案 0 :(得分:1)

通常可以对2个2的幂进行分类,这样可以减少传递次数并从按位运算中获益。