多关键字排序的方法

每个记录有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排序的好处是可以对整个序列进行排序,不需要记录各个堆的起始位置。缺点是需要稳定的排序方法。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值