合并排序算法的堆栈溢出

Stack overflow with merge sort algorithm

我正在尝试按年订购 577000 行的文件。 我将哪一行的信息放在双向链表中。 为了排序文件,我尝试实现归并排序算法,但由于该算法在排序大量信息时是递归的,因此由于堆栈内存溢出,该算法无法正常工作。 有人可以帮助尝试找到一种不会崩溃且不会花费太长时间的更有效的算法吗?

来自评论:

从 1730 年到 2013 年的日期管理员

您不需要复杂的排序。鉴于您只需要涵盖大约 300 个不同的年份,这就是我要做的。

制作一个array[300]链表。索引 0 是 1730 年的链表。索引 1 是 1731 年的链表。

现在当你从文件中读取一个新条目时,你可以通过从读取的年份中减去 1730 来找到数组索引。然后将该元素添加到该索引处的链表中。

读取整个文件后,将所有链表放在一起成为一个从索引 0 开始的链表。

现在你有一个按年份排序的链表。