def bucket_sort(seq):
length = (max(seq) - min(seq)) + 1
buckets = [0] * length
m = min(seq)
for value in seq: # 遍历序列,在相应的位置上加1,计数
buckets[value - m] += 1
result = []
for i, v in enumerate(buckets): # 遍历,从小到大
if v > 0:
y = [i + m] * v
result.extend(y)
return result
seq_list = [7, 9, 3, 5, 7, 10, 5, 4, 8, 3]
r = bucket_sort(seq_list)
print(r)
# [3, 3, 4, 5, 5, 7, 7, 8, 9, 10]
排序算法之桶排序(Python)
最新推荐文章于 2022-05-19 20:40:55 发布