桶排序的python实现
时间: 2023-04-07 20:02:11 浏览: 105
可以回答这个问题。桶排序是一种线性排序算法,它的基本思想是将待排序的数据分到有限数量的桶子里,然后对每个桶子里的数据进行排序,最后将所有桶子中的数据依次取出,即可得到有序序列。以下是桶排序的 Python 实现代码:
def bucket_sort(arr):
max_num = max(arr)
bucket = [0] * (max_num + 1)
for i in arr:
bucket[i] += 1
res = []
for j in range(len(bucket)):
if bucket[j] != 0:
res += [j] * bucket[j]
return res
arr = [3, 5, 1, 7, 9, 2, 4, 6, 8, 0]
print(bucket_sort(arr)) # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
相关问题
桶排序用python实现
桶排序是一种非比较型整数排序算法,它将元素分到有限数量的桶里,对每个桶里的元素再单独进行排序,最后按顺序合并所有桶的结果。以下是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)
桶排序python
桶排序是一种排序算法,它将元素分为不同的桶,然后对每个桶中的元素进行排序,最后将所有桶中的元素按顺序合并起来。Python实现桶排序的方法如下:
```python
def bucket_sort(arr):
# 创建桶
buckets = [0] * ((max(arr) - min(arr)) // len(arr) + 1)
# 将元素放入桶中
for i in arr:
buckets[(i - min(arr)) // len(arr)] += 1
# 将桶中元素排序
res = []
for i in range(len(buckets)):
if buckets[i] != 0:
res += [i * len(arr) + j for j in range(buckets[i])]
return res
```
其中,arr为待排序的列表,buckets为桶,res为排序后的结果。这个实现方法的时间复杂度为O(n),空间复杂度为O(n)。
阅读全文