iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现基数排序
  • 772
分享到

Python实现基数排序

基数Python 2023-01-31 01:01:06 772人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

#! /usr/bin/env python #coding=utf-8 #基于桶排序的基数排序 from random import randint def RadixSort(list,d): for k

#! /usr/bin/env python
#coding=utf-8

#基于桶排序的基数排序
from random import randint

def RadixSort(list,d):    
    for k in xrange(d):#d轮排序
        s=[[] for i in xrange(10)]#因为每一位数字都是0~9,故建立10个桶
        '''对于数组中的元素,首先按照最低有效数字进行
           排序,然后由低位向高位进行。'''
        for i in list:
            '''对于3个元素的数组[977, 87, 960],第一轮排序首先按照个位数字相同的
               放在一个桶s[7]=[977],s[7]=[977,87],s[0]=[960]
               执行后list=[960,977,87].第二轮按照十位数,s[6]=[960],s[7]=[977]
               s[8]=[87],执行后list=[960,977,87].第三轮按照百位,s[9]=[960]
               s[9]=[960,977],s[0]=87,执行后list=[87,960,977],结束。'''
            s[i/(10**k)%10].append(i) #977/10=97(小数舍去),87/100=0
        list=[j for i in s for j in i]
    return list

if __name__ == '__main__':
    a=[randint(1,999) for i in xrange(10)]#最多是三位数,因此d=3
    print a
    a=RadixSort(a,3)#将排好序的数组再赋给a!!!!
    print a

--结束END--

本文标题: Python实现基数排序

本文链接: https://www.lsjlt.com/news/184474.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作