algorithm - 我们应该对 LSD(最低有效位)基数排序中最右边的列进行排序吗?
问题描述
例如,在经典的基数排序实现中,我们开始从右到左对整数数组进行排序,即从 LSD 开始。我的问题是,如果在下一次迭代中它的所有值都将再次排序,我们是否应该对最左边的列进行排序?可以从最后的第二列开始排序吗?
您可以在此页面上找到我的意思示例: https ://s3.stackabuse.com/media/articles/radix-sort-in-python-4.png
编辑:最右边,但不是最左边。
解决方案
不是最左边而是最右边(最低有效位)。
是的,我们必须在第一阶段按最右边的数字排序,因为在第二阶段我们只考虑第二个数字。
例如,如果我们有[15 13]
数组并且只想按第二个数字(右数第二个 - 1)排序 - 不需要交换元素(查看相等的 1),并且数组保持不变 - 未排序......
推荐阅读
- prolog - 如何检查序言中的顺序?
- java - 正则表达式匹配两个或三个花括号内的单词
- javascript - 如何更改对象数组中的属性名称的好方法?
- reactjs - 如何在没有后端的情况下向 Outlook 发送电子邮件
- quarkus - Quarkus Microprofile Rest Client,如何以不同方式处理错误
- point-clouds - open3d voxel_size 太小:下采样不适用于 e57 二进制文件
- vb.net - 我的代码只在 sqldatabase 中插入第一行数据
- python-3.x - 将 Python 列表推导转换为 for 循环
- android - 在云中运行代码的确切部分并获得结果
- r - 是否有任何 R 函数可以将组中的行转换为列?