所以我试图比较排序列表的速度。我编写了自己的插入排序函数,我将它与在排序方法中构建的pythons进行比较。我现在正在尝试创建一个随机生成的列表,如30,000或任何数字。然后我将使用for循环从1000个数字的列表开始,并将其递增1000,直到达到30k。这是我到目前为止,我在使用for循环创建一个30k位的列表时遇到了麻烦。
import time
import random
def InsertionSort(A):
for i in range(1,len(A),1):
target = A[i]
j = i - 1
while j >=0 and target < A[j]:
A[j+1] = A[j]
j = j - 1
A[j+1] = target
return A
def TimSort(A):
A.sort()
return A
答案 0 :(得分:3)
如果您需要生成N个随机数,可以使用:
import random
random_numbers = [ random.random() for _ in xrange(N) ]
random
模块还有randint
之类的方法用于返回随机整数。有关更多详细信息,请参阅其文档。
答案 1 :(得分:0)
如果你想为一个随机数字列表播种,你没有指定长度,所以我选择了65535。
import random
nums = range(65535) # Original list of 65535 digits
random.shuffle(nums) # Now they're in random order
first30k = nums[:30000] # 30,000 random digits from 0-65535 in random order