#疑問
bublesortの実行時間を比較してみようと友人はrubyで自分はpythonをやったのですが、rubyは5秒,pythonでは44秒程度かかりました。
なぜこんなに差があるのでしょうか。
それはプログラミング言語のせいなのかコードのせいなのか知りたいです。
コードのせいならば、どこがおかしいのでしょうか。
始めたばかりなのでできれば簡単に詳しくかいていただければありがたいです。
一万個の疑似乱数を生成させています。今回はrand()を使わないで疑似乱数を生成しました。
また、1万個の疑似乱数列を10種類作りそれをBublesortにいれています。
求めた時間は10種類の乱数列の実行時間を平均したものです。
#該当ソースコード
python
1import time#time.clockをつかうため 2def Bublesort(a): 3 start=time.clock() 4 k=len(a)-1 5 for i in range(k): 6 for j in range(k,i,-1): 7 if a[j]<a[j-1]: 8 t=a[j] 9 a[j]=a[j-1] 10 a[j-1]=t 11 end=time.clock() 12 return end-start 13 14def Random_method(r): 15 N=10000#乱数生成個数 16 x=[] 17 a=1229 18 c=351750 19 m=1664501 20#乱数発生 21 for i in range(N): 22 r=float((a*r+c)%m) 23 x.append(r/m) 24 return x 25 26time_sort=0.0 27with open("s_num.txt",encoding="utf-8") as tf:#ファイルオープン 28 for line in tf:#一行ずつ読み込む 29 time_sort=Bublesort(Random_method(float(line)))+time_sort 30 #合計時間 31print(time_sort/10) 32
ファイルから入力している数値は疑似乱数をつくるRandom_methodにはいります。ファイルには300~310までの数値がかかれており、これがRandom_methodにはいり10種類の乱数列を作り出しました。
回答2件
あなたの回答
tips
プレビュー