八大排序
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))