Python 我如何比较表演的次数? 随机导入 导入时间 def插入_排序(A): 如果len(A)==1: 归还 其他: S=[A[0]] 对于范围(1,len(A))中的i: j=i-1 当j>=0时: 如果A[i]>S[j]: S.插入((j+1),A[i]) 打破 其他: j=j-1 如果j==-1: S.插入(0,A[i]) 返回S def快速分拣(A): 如果不是: 返回[] 其他: pivot=random.randint(0,len(A)-1) pivot_index=A[pivot] L=快速排序([L代表i,L在枚举(A)中) 如果l轴(U索引]) 返回L+[pivot_index]+R RN=[random.randrange(010000)表示范围(100)内的k]
这是关于快速排序和插入排序的代码 我想比较两件事,插入排序(RN)的执行计数和快速排序(RN)的执行计数Python 我如何比较表演的次数? 随机导入 导入时间 def插入_排序(A): 如果len(A)==1: 归还 其他: S=[A[0]] 对于范围(1,len(A))中的i: j=i-1 当j>=0时: 如果A[i]>S[j]: S.插入((j+1),A[i]) 打破 其他: j=j-1 如果j==-1: S.插入(0,A[i]) 返回S def快速分拣(A): 如果不是: 返回[] 其他: pivot=random.randint(0,len(A)-1) pivot_index=A[pivot] L=快速排序([L代表i,L在枚举(A)中) 如果l轴(U索引]) 返回L+[pivot_index]+R RN=[random.randrange(010000)表示范围(100)内的k],python,quicksort,insertion-sort,Python,Quicksort,Insertion Sort,这是关于快速排序和插入排序的代码 我想比较两件事,插入排序(RN)的执行计数和快速排序(RN)的执行计数 如何比较这些东西呢?有一个名为timeit的python模块,这正是您想要的。您可以按如下方式使用它: import random import time def insertion_Sort(A): if len(A) == 1 : return A else : S = [A[0]] for i in range(1,l
如何比较这些东西呢?有一个名为
timeit
的python模块,这正是您想要的。您可以按如下方式使用它:
import random
import time
def insertion_Sort(A):
if len(A) == 1 :
return A
else :
S = [A[0]]
for i in range(1,len(A)):
j = i-1
while j >= 0:
if A[i] > S[j]:
S.insert((j+1),A[i])
break
else :
j = j-1
if j==-1:
S.insert(0,A[i])
return S
def quick_Sort(A):
if not A:
return []
else:
pivot = random.randint(0, len(A) - 1)
pivot_index = A[pivot]
L = quick_Sort([l for i,l in enumerate(A)
if l <= pivot_index and i != pivot])
R = quick_Sort([r for r in A if r > pivot_index])
return L + [pivot_index] + R
RN = [random.randrange(0,10000) for k in range(100)]
您可以用参数
A
的值替换params
,用您希望测试的次数替换number=100
。使用timeit
进行速度压缩可能的重复请在写答案之前阅读问题下的注释
from timeit import timeit
print(timeit('insertion_Sort(params)','from __main__ import insertion_Sort',number=100))
print(timeit('quick_Sort(params)','from __main__ import quick_Sort',number=100))