2017-06-05 8 views
1

私は自分のマージソートをMIT Schemeに実装しました。私はそれを組み込みのmerge-sortに対してテストして比較したい。しかし、私は両方の実行時間を取得する方法を知りません。また、最大100万の要素をテストするので、スタックサイズ/再帰の深さをどのように増やしますか?MIT Scheme - Merge Sort + Timing Execution

+1

FYIボトムアップmergesortは再帰を必要とせず、自然にループで実装できます。 –

+0

ありがとう!私はオーバーヘッドを減らすためにそれを試すかもしれない – Ketameme

答えて

2

MITスキームにはタイミング手順がたくさんあります。documentationを確認してください。具体的には、これを試してみてください:

(with-timings 
(lambda() 
    (merge-sort '(1 2 3 4 5) >)) 
(lambda (run-time gc-time real-time) 
    (write (internal-time/ticks->seconds run-time)) 
    (write-char #\space) 
    (write (internal-time/ticks->seconds gc-time)) 
    (write-char #\space) 
    (write (internal-time/ticks->seconds real-time)) 
    (newline))) 

ビルトインsort独自の実装が良いものです場合百万要素、に問題を持つべきではありません、それは結果を生成する問題を持つべきではありませんそのデータサイズで

+0

ありがとうあなた:) – Ketameme

関連する問題