時間のスペース - バケットソート

バケットソート

複数のバケットとしてMAX_NUMオープン(シーケンス内の最大値)のメモリ空間に+1。numが対応するバケット、プラスワンを見つけ、その後、数字の順に表示されます。(私はいくつかの速度のテストは本日、など、ソートアルゴリズムTimsortあまりよくありソートバケットでしたが)一般的なソートアルゴリズム、バケットソートは最速のソートアルゴリズムの一つであると言うことができ、もちろん、メモリ使用量が避けられません。


アルゴリズム

def bucket_sort(arry):
    max_num = max(arry)
    bucket = [0]*(max_num+1)
    for i in arry:
        bucket[i] +=1
    sort_arry = []
    for j in range(len(bucket)):
        if bucket[j]!=0:
            for y in range(bucket[j]):#重复元素
                sort_arry.append(j)
    return sort_arry
import time
if __name__ == '__main__':
    dis_arry = [3,4,1,21,6,41,23,2,2,3,4,1,21,6,41,23,2,2]
    start = time.clock()
    print(bucket_sort(dis_arry))
    end = time.clock()
    print(end-start)

おすすめ

転載: www.cnblogs.com/levylovepage/p/11564166.html