桶排序用python实现
时间: 2024-11-07 17:09:59 浏览: 10
桶排序是一种非比较型整数排序算法,它将元素分到有限数量的桶里,对每个桶里的元素再单独进行排序,最后按顺序合并所有桶的结果。以下是Python中实现桶排序的一个简单例子:
```python
def bucket_sort(arr):
# 首先估算出最大值和最小值,作为桶的边界
max_val = max(arr)
min_val = min(arr)
# 创建同样大小的空桶列表,桶的数量通常选择比最大值大一些的数
buckets = [[] for _ in range(max_val - min_val + 1)]
# 将元素放入对应的桶中
for num in arr:
index = (num - min_val) // (max_val - min_val)
buckets[index].append(num)
# 对每个桶内的元素进行独立排序(这里可以是插入排序或其他排序算法)
for i in range(len(buckets)):
if buckets[i]:
buckets[i] = sorted(buckets[i])
# 合并所有的桶
sorted_arr = []
for bucket in buckets:
sorted_arr.extend(bucket)
return sorted_arr
# 示例
arr = [4.8, 1.5, 6.2, 0.9, 7.3]
sorted_arr = bucket_sort(arr)
print("Sorted array:", sorted_arr)
阅读全文