不废话,上代码
import random
def create_array():
i = 0
a = []
while i <= 1000000:#生成一个可以存储指定数据的数组
a.append(0)
i += 1
while i >= 0:#为数组指定随机生成整数并将整数作为下标为数组指定处的值+1
a[random.randint(0,1000000)] += 1
i -= 1
return a
def bucket(a=[]):#100万的随机数排序使用了约3秒
i = 0
b = []
while i < len(a):
if a[i] > 0:
b.append(i)
i += 1
print(b)
if __name__ == '__main__':#时间复杂度O(M+N),空间复杂度就比较高了,因为有多少种结果就需要多大内存
a = create_array()
bucket(a)
最近初学Python,又在看算法之类的书,所以用来练练手,我知道有很多不合适的地方,欢迎各位大神指导!