wvogel日記

自分用の技術備忘録が多めです.

QuickSort比較

さて、では、時間測定も出来るようになったことだし、クイックソートを比較してみます。
因みに、渡すデータは、[1000,999..0]で実験。

qsort :: 0.3070175s
qsort' :: 0.1530088s

おや、filter関数使用の方が早いのか?

統計をとってみます。
5回試行
qsort ::
0.2830162s
0.3200183s
0.3120179s
0.3010173s
0.2870164s 平均:0.3006172s
qsort' ::
0.1540088s
0.156009s
0.157009s
0.1440083s
0.1680096s 平均:0.1558089s

結論
リスト内包表記は遅い!
.......なぜだろう。
前どこかで理由のような記事を読んだ気がするけど.....


さあ!
いよいよ本題!
並列処理版のクイックソートの時間を計る!
第10回 本物のプログラマHaskellを使う
で紹介されていたものを、とりあえずそのまま写させてもらい、para.hsを作成

--para.hs

--【第10回 本物のプログラマはHaskellを使う】のソースコード

main = recordTime paraqsort 1000 >>= print

そして、実行速度がどれだけ違うのか、実行。
結果、0.0920053s!!
短い!0.1秒を切りました!