写一个桶排序代码
def bucket_sort(arr): """ 桶排序 :param arr: 待排序数组 :return: 排序后的数组 """ # 确定桶的数量和范围 max_num = max(arr) min_num = min(arr) bucket_num = (max_num - min_num) // len(arr) + 1
# 初始化桶
buckets = [[] for _ in range(bucket_num)]
# 将每个元素放入桶中
for num in arr:
index = (num - min_num) // len(arr)
buckets[index].append(num)
# 对每个桶进行排序
for i in range(bucket_num):
buckets[i].sort()
# 将排好序的数字依次放入新的数组中
res = []
for bucket in buckets:
res.extend(bucket)
return res
原文地址: https://www.cveoy.top/t/topic/zUY 著作权归作者所有。请勿转载和采集!