Я реализовал свою собственную сортировку слиянием в схеме MIT. Я хочу протестировать его со встроенным merge-sort
и сравнить время; однако я не знаю, как узнать время работы обоих. Также как увеличить размер стека / глубину рекурсии, когда я тестирую до 1 миллиона элементов.
Схема MIT - сортировка слиянием + выполнение по времени
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
Спасибо тебе друг :)
- person Ketameme; 05.06.2017