Python实现基数排序
基数排序原理:
基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。
动图演示:
python代码:
#!/usr/bin/env python # -*- encoding: utf-8 -*- ''' @File :RadixSort.py @Description :取得数组中的最大数,并取得位数; arr为原始数组,从最低位开始取每个位组成radix数组; 对radix进行计数排序(利用计数排序适用于小范围数的特点); @CreatTime :2020/08/21 10:25:07 @Author :Yunhgu @Version :1.0 ''' def RadicSort(arr): MinnumLength = 1 MaxNumLength = len(str(max(arr))) while MinnumLength<=MaxNumLength: bucket_list =[[] for _ in range(10)] for a in arr: Digits = int(a / (10**MinnumLength)) % 10 bucket_list[Digits].append(a) # 找到位置放入桶数组 arr.clear() for bucket in bucket_list: for num in bucket: arr.append(num) MinnumLength+=1 return arr if __name__ == "__main__": int_list = [4, 56, 87, 56, 23, 78, 69, 23, 321,66] r = RadicSort(int_list) print(r)
不论你在什么时候开始,重要的是开始之后就不要停止。
不论你在什么时候结束,重要的是结束之后就不要悔恨。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律