python基数排序
时间: 2023-10-14 15:31:37 浏览: 106
Python基数排序是一种非比较型的排序算法,它通过将待排序的数据按照位数进行分桶和合并来实现排序。基数排序的实现可以参考以下代码:
```python
# coding=utf-8
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))
```
在基数排序中,首先找到待排序列表中最大的数,确定需要进行的位数(即最大数的位数)。然后,按照从低位到高位的顺序,将数据分桶并合并。在分桶时,根据当前位上的数值,将数据放入对应的桶中。在合并桶时,按照从0到9的顺序,依次将每个桶中的数据取出来,放回原数组中。这样,在每一轮分桶和合并的过程中,数据的相对次序是不会发生变化的,所以基数排序是一种稳定的排序算法。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Python实现基数排序](https://blog.csdn.net/weixin_43790276/article/details/107398348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文