我有K个文件。我把它们称为X1,X2,...,XK。
这些文件中的每一个都是一个N x 1双精度数组。
这意味着我实际上有一个NK x 1的数组,分成了K个数组。 我们称这个大数组为X。
我需要对X进行排序,但我无法将所有数据加载到内存中。 有什么高效的算法可以执行此排序并将结果保存在单独的文件中吗?
当然我知道如何做到排序H个元素,但是H不能太大,因为会出现内存问题:
更新:
有限内存下的排序问题与此问题不同,尽管它有所帮助。 如果我想使用那个问题的答案或MikeB的答案,那么这个问题也应该得到回答: 我应该将K个文件合并为一个文件,然后使用外部排序算法进行排序。 如果是,如何操作?
谢谢。
这些文件中的每一个都是一个N x 1双精度数组。
这意味着我实际上有一个NK x 1的数组,分成了K个数组。 我们称这个大数组为X。
我需要对X进行排序,但我无法将所有数据加载到内存中。 有什么高效的算法可以执行此排序并将结果保存在单独的文件中吗?
当然我知道如何做到排序H个元素,但是H不能太大,因为会出现内存问题:
- 对X1进行排序,并将其保存为sX1
- A = sX1(1:H,1)//在Matlab中
- 对X2和A进行排序
- 对其他文件重复步骤1、2和3
更新:
有限内存下的排序问题与此问题不同,尽管它有所帮助。 如果我想使用那个问题的答案或MikeB的答案,那么这个问题也应该得到回答: 我应该将K个文件合并为一个文件,然后使用外部排序算法进行排序。 如果是,如何操作?
谢谢。