多个关键字排序化成单个关键字排序

比如,我们某些大学为了选拔在主科上更优秀的学生,要求对所有学生的所有科目总分降序排名,并且在同样总分的情况下将语数外总分做降序排序。这就是对总分和语数外总分两个关键字的组合排序。

对于组合排序的问题,当然可以先排序总分,总分相等的情况下再排序语数外总分,这是通常的思维。

其实,我们还可以应用一个技巧来实现一次排序即完成组合排序问题。例如,把总分与语数外都当成字符串首尾连接在一起(注意语数外总分如果位数不够三位,需要在前面补零)很容易就可以得到令狐冲的753229要小于张无忌的753236,于是张无忌就排在令狐冲的前面。

从以上可以看出,多个关键字的排序最终都可以转化为单个关键字的排序