# 基数排序有着局限性,只能是整数,
# 排序的时候要先排后面一个条件的(多条件排序)#如本例中,先从个位开始排起
# 多关键字排序
# 从低关键字开始排序
# @File: radix_sort ##############################################
# def get_digit(num, i): # 获取整数第i位数字 #
# return num // (10 ** i) % 10 #
# #
# #
# def int_to_list(num): #
# li = [] #
# while num > 0: #
# li.append(num % 10) #
# num = num // 10 #
# li.reverse() #
# return li #
############################################## def list_to_buckets(li, i):
buckets = [[] for _ in range(10)]
for num in li:
digit = num // (10 ** i) % 10
buckets[digit].append(num)
return buckets def buckets_to_list(buckets):
li = []
for bucket in buckets:
for num in bucket:
li.append(num)
return li
# return [num for bucket in buckets for num in bucket] def radix_sort(li):
max_val = max(li)
i = 0
while 10 ** i <= max_val:
li = buckets_to_list(list_to_buckets(li, i))
i += 1
return li print(radix_sort([5, 3, 9, 8, 1, 0, 99]))

最新文章

  1. hibernate笔记--基于主键的单(双)向的一对一映射关系
  2. jQuery-1.9.1源码分析系列(十五) 动画处理——缓动动画核心Tween
  3. singleton pattern的推荐实现
  4. Flex air修改外部xml文件 (转)
  5. 以 Composer 的方式在 PhpStorm 中添加代码审查工具 Code Sniffer
  6. 重写ViewPager方法,防止滑动广告尾页的时候,Fragment也改变! (如果广告设置为轮播的话,不需要重写ViewPager)
  7. JAVA 值传递
  8. Codeforces Round #130 (Div. 2)
  9. MAC自动备份数据到服务器
  10. CodeForces Round #278 (Div.2) (待续)
  11. JQuery学习笔记--01
  12. TheFifthWeekText
  13. 12C RMAN 备份参考v1
  14. MySQL .msi 安装失败改用.zip安装步骤
  15. 【算法导论】最小生成树之Kruskal法
  16. CentOS7完成mysql的安装和远程访问
  17. webdriver.chrome()禁止加载图片
  18. python学习笔记(二)、字符串操作
  19. OAuth 2.0 C# 版
  20. NodeJs使用async让代码按顺序串行执行

热门文章

  1. alsa声卡切换
  2. Ajax的简单实现(Json)
  3. Array types are now written with the brackets around the element type问题的解决方法
  4. Python中文问题研究
  5. HDU2255 奔小康赚大钱 【模板】 二分图完美匹配
  6. read appSettings in configuration file by XElement with xmlns
  7. HDU 1257:最少拦截系统
  8. [Silverlight 2.0 控制物体绕圆弧运行(C#初探篇)]
  9. ajax验证用户名 当用户名框的数据改变时 执行ajax方法
  10. WAS:修改jsp编译器用JDK5.0