def bucket_sort(li, n=100, max_num=10000):
bucket = [[] for _ in range(n)]
for val in li:
i = min(max_num // n, n - 1)
bucket[i].append(val)
for j in range(len(bucket[i]) - 1, 0, -1):
if bucket[i][j] < bucket[i][j - 1]:
bucket[i][j], bucket[i][j - 1] = bucket[i][j - 1], bucket[i][j]
sorted_li = []
for buc in bucket:
sorted_li.extend(buc)
return sorted_li
import random
li = [random.randint(0, 10000) for i in range(10000)]
li = bucket_sort(li)
print(li)
桶排序——python
最新推荐文章于 2024-09-23 14:24:34 发布