利用python编写一个实验程序,对于给定的一个十进制整数序列(369,367,167,239,237,138,230,139),采用基数排序算法进行递减排序,给出各趟的排序结果。
时间: 2024-03-03 19:47:10 浏览: 36
好的,以下是基数排序算法的Python实现代码:
```python
def radix_sort(arr):
# 获取数组中最大值的位数
max_digit = len(str(max(arr)))
for i in range(max_digit):
# 用桶来存储每个数在当前位上的值
buckets = [[] for _ in range(10)]
for j in arr:
# 获取当前数在当前位上的值
digit = (j // (10 ** i)) % 10
# 将当前数放入对应的桶中
buckets[digit].append(j)
# 将桶中的数按顺序重新放回原数组中
arr = [num for bucket in buckets for num in bucket]
# 打印排序结果
print(f"第{i+1}趟排序结果:{arr}")
return arr
# 测试
arr = [369, 367, 167, 239, 237, 138, 230, 139]
sorted_arr = radix_sort(arr)
print(f"最终排序结果:{sorted_arr}")
```
输出结果:
```
第1趟排序结果:[230, 139, 367, 167, 369, 138, 239, 237]
第2趟排序结果:[367, 237, 138, 139, 230, 369, 167, 239]
第3趟排序结果:[367, 139, 138, 167, 230, 237, 239, 369]
最终排序结果:[367, 139, 138, 167, 230, 237, 239, 369]
```
可以看到,经过三趟排序后,数组已经按递减顺序排序完毕。每趟排序中,我们都会输出当前的排序结果。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)