我正在尝试使用合并排序来实现(在 C 中)用于大学作业的数据库的外部排序算法。可用内存是buffSize
块。我发现这个链接很有帮助:
http://web.eecs.utk.edu/~huangj/CS302S04/notes/external-sorting2.html
但我的问题是关于这行伪代码,在算法的第一阶段:
sort array a using an in-memory algorithm like quicksort
如果我无权使用我的buffSize
空间以外的任何内存,所以我无法分配a
链接的数组,我如何对包含在这些块中的记录进行排序(然后将它们存储在临时运行文件中) ,使用内存中的排序过程(例如快速排序)。在那种情况下,我的记录不会位于连续数组中,而是位于非连续内存块中,我无法直接应用 qsort。有什么提示吗?