前面所讨论的排序算法均是基于关键字之间的比较来实现的,而基数排序是通过“分配”和“收集”过程来实现排序。
基数排序是一种借助于多关键字排序的思想对单关键字排序的方法。
一般地,记录R[i]的关键字R[i].key是由d位数字组成,即kd-1,kd-2,…k0,每一个数字表示关键字的一位。
其中kd-1为最高位,k0是最低位,每一位的值都在0≤ki<r范围内,其中r称为基数。
基数排序有两种:最低位优先(LSD)和最高位优先(MSD)。
最低位优先的过程是:先按最低位的值对记录进行排序,在此基础上,再按次低位进行排序,依此类推。由低位向高位,每趟都是根据关键字的一位并在前一趟的基础上对所有记录进行排序,直至最高位,则完成了基数排序的整个过程。