在32位数字上使用基数排序

时间:2014-01-01 19:44:02

标签: java radix-sort

我很想知道,当我有一个整数列表并且我需要对它们进行排序时, 并且我知道它们是32位的整数,我可以使用基数排序(将计数排序作为其稳定排序)在o(n)时间对它们进行排序吗?

是不是只使用从LSB开始的数字上的位表示的32个计数排序?

我知道没有先前数据知识的一般排序采用o(nlogn),但不是因为它们是32位整数才能使它成为o(n)排序吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的!基数排序对于无符号整数可以正常工作,对于有符号整数也可以(稍微多一些工作)。

有趣的是,如果它们的位被重新解释为整数,它也适用于非NaN非负浮点数。 (负浮点数需要更多的工作,可能不值得。)