多关键字排序的方法
来源:互联网 发布:网络彩票开售 编辑:程序博客网 时间: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排序的好处是可以对整个序列进行排序,不需要记录各个堆的起始位置。缺点是需要稳定的排序方法。
- 多关键字排序的方法
- 关键字: sort, 排序方法
- 【多关键字排序】完美的对称
- 多关键字排序问题
- 多关键字排序
- 多关键字排序
- Linux 之sort-多关键字排序(在第一个关键字的基础上再进行第二个关键字排序)
- C# 类 关键字 排序 方法总结
- linux多文件替换关键字的方法
- python列表多关键字排序
- 查看python关键字的方法
- 查看python关键字的方法
- lucene 的关键字变色 与排序
- 站长浅谈企业网站多个关键字的优化方法
- UE 高亮 一个或多个关键字的方法
- 【hdoj1051】Wooden Sticks(多关键字排序)
- Tyvj Q1027(多关键字排序)
- 第三课 return关键字的用法、toString()方法、this关键字
- WHEN T6.START_END_DIFF <= 20 THEN
- 反序数
- Qt安装—搭建VS2008+QT开发环境
- Web开源测试工具—Selenium介绍(1)
- 5.9 fread和fwrite函数-二进制I/O
- 多关键字排序的方法
- 星号图A
- ibatis sql_Map中出现异常:Cause: java.lang.RuntimeException: JavaBeansDataExchange could not instantiate..
- 3.8 《硬啃设计模式》 第17章 结构型设计模式小结
- 对于计算机语言的认识
- 基于IBM Cognos Report studio的商业智能分析方案(专业报表、Drill Through、切片、旋转)
- 图像处理特征提取(一):LINK错误的解决
- 异步任务AsyncTask的使用
- Best Time to Buy and Sell Stock II 最佳时间买入卖出股票(多次买卖)@LeetCode