前提
Pythonで挿入ソート、マージソート、クイックソート、選択ソート、バブルソートの実行時間を求めてグラフにしたい
実現したいこと
ソートの実行時間を図りたい
実行時間を1つのグラフにしたい
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
from time import perf_counter from math import floor from random import randint from matplotlib.backends.backend_pdf import PdfPages import matplotlib.pyplot as plt def insertion_sort(A): for j in range(1, len(A)): key =A[j] i = j - 1 while i>-1 and A[i]>key: A[i+1] = A[i] i=i-1 A[i+1]=key def merge(A, p, q, r): L=[i for i in A[p:q+1]] R=[i for i in A[q+1:r+1]] L.append(float('inf')) R.append(float('inf')) i,j=0,0 for k in range(p,r+1): if L[i]<=R[j]: A[k]=L[i] i=i+1 else: A[k]=R[j] j=j+1 def merge_sort(A,p,r): if p<r: q=floor((p+r)/2) merge_sort(A,p,q) merge_sort(A,q+1,r) merge(A,p,q,r) def quicksort(A,p,r): if p<r: q=partition(A,p,r) quicksort(A,p,q-1) quicksort(A,q+1,r) def partition(A,p,r): x=A[r] i=p-1 for j in range(p,r): if A[j]<=x: i=i+1 A[i],A[j]=A[j],A[i] A[i+1],A[r]=A[r],A[i+1] return i+1 def selection_sort(A): for i in range(1,len(A)+1): m=i for j in range(i,len(A)): if A[j]<A[m]: m=j A[i],A[m]=A[m],A[i] def bubble_sort(A): for i in range(1,len(A)): for j in range(1,len(A)-i+1): if A[j]<A[j-1]: A[j],A[j-1]=A[j-1],A[j] fig=plt.figure() ax=fig.add_subplot(1,1,1) ax.grid(True) ax.set_xlim([100,1000]) ax.set_xlabel('input size') ax.set_ylim([0,80]) ax.set_ylabel('average computation time [ms]') plt.legend(loc='best') pp = PdfPages('result.pdf') pp.savefig() pp.close()
試したこと
色々調べたがわからなかった
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。