Pythonバケツソート

740 ワード

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

'''
                    。                     。
                     (     、           ,           )。
'''
import random

def bucketSort(lst):
    buckets = [0] * ((max(lst) - min(lst))+1)
    for i in range(len(lst)):
        #    i                     , i+min(lst)           
        #lst[i]-min(lst)=i
        buckets[lst[i]-min(lst)] += 1
    res=[]
    for i in range(len(buckets)):
        if buckets[i] != 0:
            #    i                     , i+min(lst)           
            #lst[i]-min(lst)=i
            res += [i+min(lst)]*buckets[i]
    return res

nums = [random.randint(-50,100) for i in xrange(20)]
print nums
print bucketSort(nums)