实现范围为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)]
#遍历数组