Схема MIT - сортировка слиянием + выполнение по времени

Я реализовал свою собственную сортировку слиянием в схеме MIT. Я хочу протестировать его со встроенным merge-sort и сравнить время; однако я не знаю, как узнать время работы обоих. Также как увеличить размер стека / глубину рекурсии, когда я тестирую до 1 миллиона элементов.


person Ketameme    schedule 05.06.2017    source источник
comment
FYI восходящая сортировка слиянием не требует рекурсии и может быть естественным образом реализована с помощью цикла.   -  person Will Ness    schedule 07.06.2017
comment
Спасибо! Я могу попробовать это, чтобы уменьшить накладные расходы   -  person Ketameme    schedule 07.06.2017


Ответы (1)


В схеме MIT есть множество процедур синхронизации, проверьте документация. В частности, попробуйте это:

(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 не должно быть проблем с одним миллионом элементов, если ваша собственная реализация хороша, у нее не должно быть проблем с получением результата с таким размером данных.

person Óscar López    schedule 05.06.2017
comment
Спасибо тебе друг :) - person Ketameme; 05.06.2017