这本书《算法导论》 http://mitpress.mit.edu/algorithms/提到了基数排序的 LSD(最低有效数字)版本。然而,正如其他人在 stackoverflow 中指出的那样,还存在 MSD(最高有效数字)版本。所以我想知道每一个的优点和缺点。我的猜测是 LSD 版本比 MSD 版本有一些好处,但我不确定。因此就有了这个问题。
取自链接,可能有用:http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_sorting.aspx http://www.eternallyconfuzzled.com/tuts/algorithms/jsw_tut_sorting.aspx(在最底部)
LSD 基数排序的最大问题是它从差异最小的数字开始。如果我们可以从最高有效数字开始,那么第一遍将对整个范围进行排序大有帮助,而之后的每遍都将简单地处理细节。 MSD基数排序的思想是将所有具有相等值的数字划分到各自的桶中,然后对所有桶执行相同的操作,直到数组排序完毕。当然,这表明了一种递归算法,但这也意味着我们现在可以对可变长度的项目进行排序,并且我们不必接触所有数字来获得排序的数组。这使得 MSD 基数排序变得更快、更有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)