桶排序
案例:学生分数为0~10,要按照从小到大排序:
1. 首先我们需要申请一个大小为10的数组(python为列表),然后遍历学生成绩,每遍历一个成绩就在序号=成绩
的位置+1
.
2. 生成完列表之后,按照序号从小到大遍历,打印出每个序号
,每个序号打印次数是序号下的数值
def bucket_sort(lst):
pre_lst = [0]*10#预先设定的列表,全部置零
result = []
for score in lst: #遍历成绩,相应得分位置+1
pre_lst[score-1]+=1
i = 0
while i<len(pre_lst):#遍历生成的列表,从小到大
j = 0
while j < pre_lst[i]:
result.append(i+1)
j+=1
i+=1
print result
实例验证:
lst =