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)
复制代码

 

posted @   不能说的秘密  阅读(470)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示