八大排序

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))

转载于:https://www.cnblogs.com/zx125/p/11558855.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值