我在MIT Scheme中实现了自己的合并排序。我想针对内置merge-sort
测试它并比较时间;但是,我不知道如何获得两者的运行时间。另外,当我测试多达100万个元素时,如何增加堆栈大小/递归深度。
答案 0 :(得分:2)
麻省理工学院计划中有一堆计时程序,请查看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
不应该有一百万个元素的问题,如果你自己的实现是一个好的,它不应该有问题产生具有该数据大小的结果。