algorithm - 基数排序是否适用于位数不同的数字?

标签 algorithm sorting radix-sort

我知道基数排序是通过比较数字的数字来工作的。我的问题是,假设我们有不同位数的不同数字。基数排序在这里工作吗?我们可以简单的假设,比如比较两个数,一个是3位,一个是6位,比较小的那个数的前3位是0,但是怎么实现呢?我们如何让程序假设如果没有足够的数字,那么这些数字为零?

谢谢。

最佳答案

您需要以某种方式添加或模拟那些不存在的数字或对数字进行分组排序,每组数字仅包含相同长度的数字。

这3个数字

9912
 999
 123

可以转化为

9912
0999
0123

并使用常规基数排序进行排序,或者可以将它们排序为 2 个独立的组:

9912

 999
 123

后者会给你(假设升序)

 123
 999

而前者保持不变。然后你组合排序的组(从较短的数字到较长的数字):

 123
 999
9912

就这些。

关于algorithm - 基数排序是否适用于位数不同的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569571/

相关文章:

algorithm - 查找数字是否为完美正方形的优化方法

python - Pandas DataFrame 按值和索引排序问题

C++基数排序算法

javascript - 计算数组中有多少个具有特定名称的条目并保存以供以后使用

php - 在 php 或 mysql 中使用数字中的内部数组对数组进行排序

algorithm - 按数字顺序对 N 个数字进行排序

c - 此基数排序代码中的最后一个 `for` 循环有什么作用?

php - 在六边形场上通过螺旋创建单元格的算法

c++ - 他们是否将 copy_if 添加到 c++0x?

python - 以最小差异大于 Python 列表中的值对大多数数字进行采样的最快方法