【发布时间】:2015-10-16 17:44:39
【问题描述】:
我的一位朋友最近提到,您可以通过“缩短合并排序”来减少合并排序的实际运行时间。他提到,您应该在各个数组大小等于缓存行大小的地方停下来,而不是将数组一直分解为单个块,因为整个数组随后将被加载到缓存中。此时,您应该使用替代排序(即插入排序)来合并每个数组,然后完成合并排序。
虽然 BigO 提出了不同的建议,但他的建议似乎具有直观意义。有人可以确认或否认这一点,和/或提供有关其如何以及为何起作用的更多信息吗?
感谢大家的帮助!
【问题讨论】:
标签: arrays sorting caching mergesort insertion-sort