Python|关于基数排序(1)
问题描述
基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O (nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的稳定性排序法。
在基数排序中又分为; 1)多位关键位排序 2)链式基数排序。今天我们先来谈一谈1)多位关键字排序。
解决方案
多关键字排序中存在高位优先和低位优先。
记有d个关键字:
高位优先:顾名思义先对最高位进行排序例如在扑克牌中我们就先对花色k1进行排序然后对子序列进行次关键字kd-1排位。一直重复到最后一个次级子序列kd。
低位优先:首先对最低位排序码例kd:对所有对象进行一趟排序,
在依次对kd-已排数码的个数直到排完所有排数码最后一趟排序完成即可得到低位优先的有序数列。
结语
以上就是基数排序中的多关键字排序,文笔粗糙,我会加油改进的。下次我们来学习链式基数排序。
作者:赵金莘
实习编辑:衡辉
稿件来源:深度学习与文旅应用实验室(DLETA)
赞 (0)