python实现基数排序
来源:互联网 发布:网赌用什么软件 编辑:程序博客网 时间:2024/05/06 12:41
例如:
首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:
| 0 | 91 | 0 | 0 | 4 | 0 | 56 | 17 | 38 | 9 |
接下来将这些桶子中的数值重新串接起来,成为以下的数列:
[91,4,56,17,38,9]
接着再进行一次分配,这次是根据十位数来分配:
| 4,9 | 17 | 0 | 38 | 0 | 56 | 0 | 0 | 0 | 91 |
接下来将这些桶子中的数值重新串接起来,成为以下的数列:
[4,9,17,38,56,91]
待排序数组[17, 4, 56, 38, 9, 91]
第一步首先根据个位数的数值,在走访数值时将它们分配至编号0到9的桶子中:
| 0 | 91 | 0 | 0 | 4 | 0 | 56 | 17 | 38 | 9 |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 桶编号
第二步接下来将这些桶子中的数值重新串接起来,成为以下的数列:
[91,4,56,17,38,9]
接着再进行一次分配,这次是根据十位数来分配:
| 4,9 | 17 | 0 | 38 | 0 | 56 | 0 | 0 | 0 | 91 |
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 桶编号
第三步接下来将这些桶子中的数值重新串接起来,成为以下的数列:
[4,9,17,38,56,91]
这时候整个数列已经排序完毕;如果排序的对象有三位数以上,则持续进行以上的动作直至最高位数为止。
#! /usr/bin/env python# -*- coding: utf-8 -*-def radix_sort(lst): bucket = [[], [], [], [], [], [], [], [], [], []] #can not use [[]]*10 bucket1 = [[], [], [], [], [], [], [], [], [], []] for i in lst: bucket[i%10].append(i) lst1 = [] for b in bucket: lst1.extend(b) for i in lst1: bucket1[i/10%10].append(i) lst2 = [] for b in bucket1: lst2.extend(b) return lst2if __name__ == "__main__": lst = [17, 4, 56, 38, 9, 91] print radix_sort(lst)
0 0
- python实现基数排序
- Python实现基数排序
- 排序算法C++&&Python实现---基数排序
- python实现计数排序、桶排序、基数排序
- 基数排序(Python实现出现的奇怪问题???)
- 基数排序C语言实现
- 基数排序的java实现
- 基数排序的完整实现
- radixSort 基数排序算法实现
- 基数排序(java实现)
- 基数排序-C语言实现
- 实现基数排序算法
- 基数排序java实现代码
- 基数排序 C语言实现
- Java实现基数排序
- C++实现基数排序
- 基数排序的 Java 实现
- 基数排序java实现
- Xml文件的读取以及通过GridView控件利用视图过滤器查询显示数据
- API的概念
- Building OpenSSL for Visual Studio
- 获取当前工程的路径
- NYOJ 220 推桌子
- python实现基数排序
- Understanding Python Decorators in 12 Easy Steps!
- CCProgressTo和CCProgressTimer 图片载入(进度条,动画)
- CSS选择器
- Nubia Z5S 基于官方H207/4.4内核的Mokee4.4.4 RC3.2 (2014.7.31修复呼吸灯(能亮依然不能呼吸))
- gcc 常见的编译错误,警告总结
- 自己手写WEB程序框架并运行
- Sed的使用
- Android编程权威指南Android Programming the big nerd ranch guide