Python实现桶排序

本文介绍了如何使用Python实现桶排序算法,特别是在值范围为1~M的整数排序中。通过创建一个大小为M的数组S作为桶,根据输入数组A的元素将计数累加到对应的桶中。遍历完成后,扫描数组S即可得到排序结果。桶排序的时间复杂度为O(M+N),不适用于原址排序。以数组[5,3,6,1,2,7,5,10]为例,展示了具体的排序过程。" 9881753,1363407,进程和线程调度算法详解,"['操作系统', '并发处理', '调度算法', '多线程', '进程管理']
摘要由CSDN通过智能技术生成

实现范围为1~M的桶排序
对于数组A,包含N个整数,值从1到M,我们可以利用一种非常快速的排序,桶排序(bucket sort)。创建一个数组S,里面含有M个桶,初始化为0。然后遍历数组A,读入Ai时,S[Ai]增一。所有输入被读进后,扫描数组S得出排好序的表。该算法时间花费O(M+N),空间上不能原址排序。

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

#范围是1~M的桶排序   
import random
class bucketSort(object):
    def sort(self,list):
        _max=max(list)
        _min=min(list)        
        #建立max-min+1个桶,将min~max区间的数都置为0
        #每个桶代表的值分别为min,min+1,min+2,...,max
        s=[0 for i in xrange(_min,_max+1)]
        #遍历数组
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值