首页 > 编程语言 > 详细

八大排序

时间:2019-09-20 19:43:32      阅读:100      评论:0      收藏:0      [点我收藏+]

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!