桶排序
思想:
桶排序也叫计数排序,
就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出数据集里面的元素。
总结:
1.桶排序的优点就是特别快,真的是特别快!特别快!特别块!
2.缺点就是特别耗资源,如果数据取值的范围是0---10^10, 就要申请一个大小为10^10的数组,想想这得多耗内存空间。
import random
# 计时器:
import time
def cal_time(func):
def wapper(*args,**kwargs):
start_time = time.time()
result = func(*args,**kwargs)
end_time = time.time()
print("%s running time is %s s:" %(func.__name__,end_time-start_time))
return result
return wapper
@cal_time
def count_sort(li,max_num):
count = [ 0 for i in range(max_num+1)]
for num in li :
count[num] += 1
i = 0
for num,m in enumerate(count):
for j in range(m):
li[i] = num
i += 1
# 创建一个随机数列
data = []
for i in range(1000):
data.append(random.randint(0,100))
print(data)
count_sort(data,100)
print(data)