首页 > 解决方案 > 我们应该对 LSD(最低有效位)基数排序中最右边的列进行排序吗?

问题描述

例如,在经典的基数排序实现中,我们开始从右到左对整数数组进行排序,即从 LSD 开始。我的问题是,如果在下一次迭代中它的所有值都将再次排序,我们是否应该对最左边的列进行排序?可以从最后的第二列开始排序吗?

您可以在此页面上找到我的意思示例: https ://s3.stackabuse.com/media/articles/radix-sort-in-python-4.png

编辑:最右边,但不是最左边。

标签: algorithmsortingcolumnsorting

解决方案


不是最左边而是最右边(最低有效位)。

是的,我们必须在第一阶段按最右边的数字排序,因为在第二阶段我们只考虑第二个数字。

例如,如果我们有[15 13]数组并且只想按第二个数字(右数第二个 - 1)排序 - 不需要交换元素(查看相等的 1),并且数组保持不变 - 未排序......


推荐阅读