概述:先根据被排序对象的属性值的最小值到最大值建立并编号一连串连续有序的箱;然后遍历一遍需要被排序的对象序列,每遍历到一个对象都根据其属性值找到并装入对应编号的箱子直到遍历完毕,这样会使不同属性值的对象在不同序号的箱子中,而相同属性值的对象则在同一编号的箱子中;最后再遍历一遍箱子序列并删掉对象个数为0的空箱子,则剩余的箱子序列即为有序的对象序列。
建议数据结构:如果有需要对于箱子序列最好使用链表类的容器,这样会更加容易删除对象个数为0的空箱子。
示例:
问题:对下面的序列进行排序:
{7,11,12,3,4,9,77,2,33,4,7,10,88,101,78,13,34,25,58,8,9}
示例实现代码及结果如下:
该算法相当于是用