Python|关于基数排序(1)

简介: 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-已排数码的个数直到排完所有排数码最后一趟排序完成即可得到低位优先的有序数列。


结语

以上就是基数排序中的多关键字排序,文笔粗糙,我会加油改进的。下次我们来学习链式基数排序。



目录
相关文章
|
7月前
|
算法 Python
用 Python 实现堆排序。
用 Python 实现堆排序。
49 3
|
算法 搜索推荐 Python
Python算法——基数排序
Python算法——基数排序
91 1
|
算法 搜索推荐 Python
Python算法——计数排序
Python算法——计数排序
78 0
|
算法 搜索推荐 索引
Python算法——选择排序
Python算法——选择排序
89 0
|
2天前
|
存储 搜索推荐 Python
用 Python 实现快速排序算法。
快速排序的平均时间复杂度为$O(nlogn)$,空间复杂度为$O(logn)$。它在大多数情况下表现良好,但在某些特殊情况下可能会退化为最坏情况,时间复杂度为$O(n^2)$。你可以根据实际需求对代码进行调整和修改,或者尝试使用其他优化策略来提高快速排序的性能
|
7月前
|
搜索推荐 Python
PYTHON的快速排序
PYTHON的快速排序
51 0
|
4月前
|
存储 搜索推荐 算法
Python中的桶排序算法
总结而言,桶排序是一个非常高效的排序算法,尤其适用于数据分布均匀的情况。正确实现和使用桶排序可以在特定情况下获得极高的排序速度。
22 0
|
7月前
|
搜索推荐 算法 Python
Python系列(21)—— 排序算法
Python系列(21)—— 排序算法
|
7月前
|
搜索推荐 算法 Python
使用 Python 实现几种常见的排序算法
使用 Python 实现几种常见的排序算法
|
7月前
|
搜索推荐 Python
使用python冒泡排序
使用python冒泡排序
45 0
下一篇
无影云桌面