八大排序
Python 八大排序
时间复杂度
空间复杂度
1.插入排序
2.基数排序
import random
#构建随机的整数列表
zx=[]
for i in range(1000):
    zx.append(random.randint(1,1000))
#找出最大的数字,算出是几位数
def big_num(zx):
    max = 0
    for i in zx:
        if max < i:
            max=i
    wei=0
    while max>0:
        max=int(max/10)
        wei+=1
    return wei
#获取指定位数的数字
def get_num(num,n):
    return (int(num / (10 ** (n - 1)))) % 10
def go(zx):
    for pos in range(1, big_num(zx) + 1):
        #初始化桶
        count = [[],[],[],[],[],[],[],[],[],[]]
        #数据中转站
        haha=[]
        #装桶
        for i in range(len(zx) - 1):
            # 求出相应位数的数字
            j = get_num(zx[i], pos)
            count[j].append(zx[i])
        print(count)
        #装中转站
        for i in count:
            for j in i:
                haha.append(j)
        #数据搬运
        zx=haha
    return zx
print(go(zx))

                
            
        
浙公网安备 33010602011771号