Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何按排序顺序将N个文件合并为一个?_Java_External Sorting - Fatal编程技术网

Java 如何按排序顺序将N个文件合并为一个?

Java 如何按排序顺序将N个文件合并为一个?,java,external-sorting,Java,External Sorting,我需要从N个小的排序文件创建一个大的排序文件 我已经做了研究,发现外部排序算法是合适的 但是我有一个内存限制(内存中的字符串限制创建一个已排序的文件,然后有5个未排序的文件,第二次处理这6个文件您不必一次打开所有文件。您使用多相合并,例如多相、平衡、。。。这些都是众所周知的算法。例如,参见Knuth第三卷。是的,你可以一次合并两个。一次合并两个是最糟糕的情况@RayTayekYou仍然可以进一步划分它。i、 假设你有10个文件。您可以先对5个文件进行排序-->创建一个已排序的文件,然后有5个未排

我需要从N个小的排序文件创建一个大的排序文件

我已经做了研究,发现外部排序算法是合适的

但是我有一个内存限制(内存中的字符串限制 例如,此链接不适合,因为在合并阶段,他将所有第一行存储在内存中

你能帮我找出适合我的案例的最佳分步算法或实现吗


谢谢。

您仍然可以将其进一步分区。i、 假设你有10个文件。您可以先对5个文件进行排序-->创建一个已排序的文件,然后有5个未排序的文件,第二次处理这6个文件您不必一次打开所有文件。您使用多相合并,例如多相、平衡、。。。这些都是众所周知的算法。例如,参见Knuth第三卷。是的,你可以一次合并两个。一次合并两个是最糟糕的情况@RayTayekYou仍然可以进一步划分它。i、 假设你有10个文件。您可以先对5个文件进行排序-->创建一个已排序的文件,然后有5个未排序的文件,第二次处理这6个文件您不必一次打开所有文件。您使用多相合并,例如多相、平衡、。。。这些都是众所周知的算法。例如,参见Knuth第三卷。是的,你可以一次合并两个。一次合并两个是最糟糕的情况@雷塔耶克