堆栈溢出与合并排序算法

时间:2018-05-20 18:41:23

标签: c algorithm memory-efficient

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

来自评论:

日期范围从1730年到2013年

1 个答案:

答案 0 :(得分:1)

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

制作array[300]链表。指数零是1730年的链表。指数1是1731年的链表。

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

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

现在您有一个按年份排序的链接列表。