桶排序(Bucket Sort)
桶排序是一种分布式排序算法,适用于对均匀分布的数据进行排序。它的基本思想是:将数据分到有限数量的桶中,每个桶分别排序,最后将所有桶中的数据合并。
桶排序的步骤:
- 划分桶:根据数据的范围,将数据分配到若干个桶中。
- 排序每个桶:对每个桶中的数据进行排序(可以使用其他排序算法,如插入排序)。
- 合并桶:将所有桶中的数据按顺序合并,得到排序后的结果。
时间复杂度:
- 最坏情况:O(n²) —— 当所有数据都分配到同一个桶中时。
- 最好情况:O(n + k) —— 当数据均匀分布时,其中
k是桶的数量。 - 平均情况:O(n + k)
空间复杂度:
- O(n + k) —— 需要额外的空间来存储桶和排序结果。
Python 实现
def bucket_sort(arr):
if len(arr) == 0:
return arr
# 找到数组中的最大值和最小值
max_val = max(arr)
min_val = min(arr)
# 确定桶的数量和范围
bucket_size = 5 # 每个桶的大小
bucket_count = (max_val - min_val) // bucket_size + 1
buckets = [

最低0.47元/天 解锁文章
373

被折叠的 条评论
为什么被折叠?



