多关键字排序的方法

来源:互联网 发布:网络彩票开售 编辑:程序博客网 时间:2024/04/26 08:59

每个记录有d个关键字,表示为K1,K2到Kd

而关键字的优先顺序为K1>K2>Kd

不可能存在两个关键字的优先级相同的情况,因为如果这样两个记录无法比较。

因此出现了两种多关键字排序的方法,即MSD和LSD,MSD即按照关键字优先级k1>k2>kd来派讯,LSD即按照关键字优先级kd<k2<k1来排序。


拿扑克牌为例,如果花色的优先级高于数值。则MSD对应的方法是先将52张扑克牌按照花色分成4堆,然后每堆内进行数值的排序。

而LSD对应的派讯方法是: 按照数值将52张扑克牌按照数值分成13堆,222233334444.。。。。。。。AAAA,然后第二遍是用一个稳定排序的方法忽略数值的差异,按照花色排序(投影到花色空间)。注意必须是稳定的排序,体现在两个花色相同的牌不能改变顺序,如果直观的理解,就是把刚才的13堆不改变相对顺序的情况下,首先抽出花色为方块的牌,然后依次抽出其他牌。


MSD排序的好处是可以用不稳定的排序方法。

LSD排序的好处是可以对整个序列进行排序,不需要记录各个堆的起始位置。缺点是需要稳定的排序方法。

原创粉丝点击