一、桶排序
1. 算法思想:桶排序是将待排序序列中处于相同值域的元素存入同一个桶中,即将一个数据表分割成许多桶,然后每个桶中的元素各自排序。它采用分治策略,是一种分布式的排序方法。
2. 算法过程:
(1)根据待排序序列中最大元素和最小元素的差值和映射规则,确定申请的桶个数;
(2)遍历待排序序列,将每一个元素存储到对应的桶中;
(3)分别对每一个桶中元素进行排序,并存储到原序列中,获得一个已排序序列。
3. 图例分析:
待排序序列为:[29, 25, 3, 49, 9, 37, 21, 43],以间隔大小10来区分不同值域,待申请桶的个数为5。
4. 代码演示:
def bucket_sort(a:list)->list:
step = 10 #以间隔大小10来区分不同值域
maximum, minimum = max(a), min(a)
buckets = [[] for i in range(maximum //step - minimum // step + 1)] #桶的数量
for i in