基数排序python
时间: 2023-11-03 11:59:53 浏览: 107
python实现八大排序算法(2)
基数排序是一种非比较型的排序算法,它的思想与桶排序相似,将数据分桶并按位数进行排序和合并。具体实现基数排序的Python代码如下所示:
```python
def radix_sort(array):
max_num = max(array)
place = 1
while max_num >= 10**place:
place += 1
for i in range(place):
buckets = [[] for _ in range(10)]
for num in array:
radix = int(num / (10**i) % 10)
buckets[radix].append(num)
j = 0
for k in range(10):
for num in buckets[k]:
array[j] = num
j += 1
return array
if __name__ == '__main__':
array = [25, 17, 33, 17, 22, 13, 32, 15, 9, 25, 27, 18]
print(radix_sort(array))
```
基数排序的基本概念是,先按低位排序,逐次按高位排序,低位排序后元素的顺序在高位也相同时是不会改变的。它是一种非比较型整数排序算法,将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表示字符串和特定格式的浮点数,基数排序也可以应用于这些类型的数据。
阅读全文