给定一串数字按大小排列:
第一步:找最大值和最小值
第二步:计算计数列表(数组)的长度=(最大值-最小值+1)
第三步:偏移量=最小值
第四步:创建一个新的列表----存放排序后的元素
元素-偏移量的结果是对应放的下标
#计数排序(桶排序)
array = list(map(int,input("输入用空格分隔的数字:").split())) #给定一个列表
max_num = list[0]
min_num = list[0]
for num in list:
if num > max_num:
max_num = num
elif num < min_num:
min_num = num
#计数列表的长度
len_list1 = max_num - min_num + 1
#偏移量
offset = min_num
#初始化计数列表 元素全为0
list1 = [0] * len_list1
#排序后的列表
list2 = [0] * len(list)
#计数
for num in list:
# print(num) #7,3,2,0,1,2,3,6
list1[num - offset] += 1 #计数列表的下标减去偏移量 出现一次就加一
#print(list1) #计完数的列表
index = 0 #下标从0开始
for i in range(0,len_list1): #计数数组的长度
for j in range(0,list1[i]): #list1取这个数出现的次数 值
print(i+offset,end="") #出现几次打印几个 下标加上偏移量
list2[index] = i + offset #存放到list2里面 list2是排序后的数组
index += 1
print()
# print(list2)