排序算法:
python实现基数排序
python实现归并排序
python实现交换排序
python实现选择排序
python实现插入排序
python实现桶排序
基数排序
思想:采用关键字排序思想,即基于关键字各位的大小进行排序,借助”分配“和“收集”两种操作对逻辑关键字进行排序。
实现:将所有待比较数值统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
如图所示,最左端为输入,其余各列表示了对各个不断递增的有效位连续排序后的情况,阴影部分表述当前正被排序的数位。
代码:
def jishu_sort(array):
#获取最多需要被排序几次
times=len(str(max(array)))
for i in range(times):
#分配
bukt=[[] for _ in range(10)]
for eachnum in array:
weishu=eachnum//(10**i)%10
bukt[weishu].append(eachnum)
#收集
array=[]
for i in range(10):
array+=bukt[i]
print(array)
if __name__ == '__main__':
array=[12,34,767,45,343,676,454,49]
jishu_sort(array)