algorithm - 外部分类

标签 algorithm sorting mergesort

在此网页中:CS302 --- External Sorting

Merge the resulting runs together into successively bigger runs, until the file is sorted.

正如我所引用的,我们如何将结果运行合并在一起???我们没有那么多内存。

最佳答案

假设您有数字 1 - 9

9  7  2  6  3  4  8  5  1

让我们假设一次只有 3 个适合内存。

因此,您将它们分成 3 个 block ,并对每个 block 进行排序,将每个结果存储在一个单独的文件中:

279
346
158

现在您将三个文件中的每一个都作为流打开,并从每个文件中读取第一个值:

2 3 1

输出最小值 1,并从该流中获取下一个值,现在您有:

2 3 5

输出下一个最小值 2,然后继续,直到输出整个排序列表。

关于algorithm - 外部分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5100252/

相关文章:

java - 非迭代合并排序算法的合并异常

python - 多值字典到单个字典的列表

algorithm - 独立的时间以确保图的最小切割至少一次试验成功

c - 如何删除一个元素来对数组进行排序

python - NumPy:具有模糊/容忍比较的 np.lexsort

c++ - 多次拆分链表导致堆栈溢出 C++

java - 什么是类似于哈希表的数据结构,但是不常用的键被删除了?

php - 随机为我网站的每个页面分配一个图像?

c - 如何计算混合插入排序的修改后的快速排序的时间复杂度?

c - 合并排序逻辑错误