バケットソート
複数のバケットとして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)