栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

基数排序(radix sort)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基数排序(radix sort)

先找十个桶:0~9
第一轮按照元素的个位数排序
第二轮按照元素的十位数排序
第三轮按照元素的百位数排序

依次类推
按照从左向右,从上到下的顺序依次取出元素,组成新的数组。

def radix_sort(li):
    max_num = max(li)
    it = 0
    while 10 ** it <= max_num:
        buckets = [[] for _ in range(10)]
        for var in li:
            #987//1%10=7 ; 987//10%10=8 ; 987//100%10=9
            digit = (var // 10 ** it) % 10
            buckets[digit].append(var)
        # 上述分桶完成
        li.clear()
        for buc in buckets:
            li.extend(buc)  # 把数重新写回 li
        
        it +=1
        
import random
li = list(range(1000))
random.shuffle(li)
radix_sort(li)
print(li)            
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/313820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号