import timeit
import matplotlib.pyplot as plt
import random
def qsort(lst):
return qsort_inner(lst,0,len(lst)-1)
def qsort_inner(lst,left,right):
if left>=right:
return
pivot=lst[left] #左端 j=left #pivotがある場所 for i in range(left +1,right +1): #i: 1~リストの数まで if list[i]<pivot: tmp=lst[j+1] lst[j]=lst[i] lst[i]=tmp lst[j+1]=pivot j += 1 qsort_inner(lst,left,j-1) qsort_inner(lst,j+1,right) return lst
m=10**8
def prepare(x):
lst =random.sample(range(m),k=x)
return lst
n=1
r=1000
xs=range(50,450,50)
ys=[]
for x in xs:
time=timeit.repeat('qsort(lst)',setup='lst=prepare(x)',globals=globals(),repeat=r,number=n)
ys.append(sum(time)/(n*r))
plt.plot(xs,ys,'o')
plt.xlabel('length of list',fontsize=9)
plt.ylabel('Average time(s)',fontsize=9)
plt.show()
エラーが出るのですが、どこでエラーなのかわかりません・・・
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー