msd如何减少检查键的数量

时间:2013-12-23 13:30:02

标签: c++ algorithm sorting

我正在通过以下链接阅读MSD。

http://www.cs.princeton.edu/~rs/AlgsDS07/18RadixSort.pdf

这里提到在MSD中可能不必检查第20页上的所有键。这与第18页上的程序有什么关系。当我尝试将示例放入代码遍历时我无法理解我们减少检查所有的钥匙。

谢谢!

1 个答案:

答案 0 :(得分:0)

假设你有:( 0可以真的是什么)

600000
100000
300000
500000
400000
200000

如果您只对最重要的数字进行排序,则会得到:

100000
200000
300000
400000
500000
600000

在此之后,数组已经排序,我们可以停止 - 无需检查其他数字。

虽然在实践中可能不太理想,但在某些情况下我们无需评估所有 所有元素的数字。

如果子数组中只有一个元素,则if (hi <= lo + 1) return;语句应该返回它,以防止检查不必要的数据。