inputArr = [ 11,10,199383, 34, -1,-32,-29, 4, 0, 34, 5, 4, 36, 1, 8, 123, 453, 1008]
print("未排序集合:{0}".format(inputArr))
maxItem=inputArr[0]
minItem=inputArr[0]
for item in inputArr[1:]:
if maxItem<item:
maxItem=item
if(minItem>item):
minItem=item
# 最小值,最大值
print("min:{0}\tmax:{1}".format(minItem,maxItem))
# 创建桶数组,索引值为元素值,索引对应的值为元素个数
length=maxItem+1
if(minItem<0):
length+=abs(minItem)
bigArr=[0]*length
for item in inputArr:
bigArr[item]+=1
# 将桶中的数据放到对应的有序数组上
sortArr=[None]*len(inputArr)
sortIndex=0
for index in range(minItem,maxItem+1):
if(bigArr[index]==0):
continue
while(bigArr[index]>0):
sortArr[sortIndex]=index
bigArr[index]-=1
sortIndex+=1
print("已排序集合:{0}".format(sortArr))