基数排序(Radix Sorting)
一、多关键字的排序:
基数排序的应用主要在于多关键字的排序,例如对数字进行排序,可以将个位置为最次要关键字,最高位为首要关键字。进行排序。
MSD(Most Significant Digitfirst)法,进行最高位优先排序。
LSD(Least SignificantDigit first)法,进行最低位优先。
二、链式基数排序:
早在计算机出现之前,利用卡片分类及对穿孔卡上的记录进行排序就是用的这种方法。主要的基数排序方法,减少了传统的需要大量辅助空间的基数排序算法。
主要思想即是先分配,后收集,有k个关键字就要进行k次操作。
所以平均时间复杂度为O(d(n+rd)),需要的辅助存储空间为O(rd),其中d为关键字数量。所以这种排序方法适用于n值很大而关键字数量很少的情况。
流程图: