2017-06-05 5 views
1

Ich habe meine eigene Merge Sortierung in MIT Scheme implementiert. Ich möchte es gegen die eingebaute merge-sort testen und mal vergleichen; Ich weiß jedoch nicht, wie ich die Laufzeit von beiden bekomme. Wie erhöht man auch die Stapelgröße/Rekursionstiefe, während ich bis zu 1 Million Elemente teste.MIT Scheme - Merge Sort + Timing Ausführung

+1

FYI Bottom-Up-Mergesort erfordert keine Rekursion und kann natürlich mit einer Schleife implementiert werden. –

+0

Danke! Ich könnte versuchen, dass Overhead zu reduzieren – Ketameme

Antwort

2

Es gibt eine Reihe von Timing-Verfahren in MIT Scheme, überprüfen Sie die documentation. Insbesondere versuchen diese:

(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))) 

Die eingebauten in sort kein Problem mit einer Million Elementen haben sollte, wenn Ihre eigene Implementierung gut ist, sollte es keine Probleme hat ein Ergebnis produzieren mit dieser Datengröße.

+0

Danke Freund :) – Ketameme