用python写一道基数排序的程序,语言简单易懂
时间: 2024-06-10 21:09:59 浏览: 52
基于python的基数排序算法设计与实现
以下是一个简单的基数排序程序,用于对整数列表进行排序:
```python
def radix_sort(lst):
# 获取列表中最大的数,确定最大位数
max_num = max(lst)
max_digit = len(str(max_num))
# 开始排序
for i in range(1, max_digit+1):
# 建立桶
buckets = [[] for _ in range(10)]
# 将数字放入对应的桶中
for num in lst:
digit = (num // 10**(i-1)) % 10
buckets[digit].append(num)
# 重新组合数字
lst = []
for bucket in buckets:
lst.extend(bucket)
return lst
```
在这个程序中,我们首先找到列表中最大的数字,以确定我们需要进行多少次排序(即最大位数)。然后,我们循环遍历每一位数字,建立桶并将数字放入对应的桶中。最后,我们重新组合数字并返回已排序的列表。
这个程序的时间复杂度为O(d(n+k)),其中d是数字的最大位数,n是列表中数字的数量,k是桶的数量(在这里是10)。
阅读全文