gpt4 book ai didi

java - 对 2 个或更多大量结果集进行排序?

转载 作者:行者123 更新时间:2023-11-29 06:25:40 24 4
gpt4 key购买 nike

我需要能够对多个中间结果集进行排序,并按排序顺序将它们输入到一个文件中。排序基于单个列/键值。每个结果集记录将是值列表(如表中的记录)

  1. 中间结果集是通过查询完全不同的数据库得到的。
  2. 中间结果集已经根据某些键(或列)进行了排序。在将它们写入文件之前,它们需要在相同的键(或列)上再次组合和排序。
  3. 由于这些结果集可能很大(MB 级),因此无法在内存中完成。

我的广泛解决方案:

使用散列和随机访问文件。由于结果集已经排序,当检索结果集时,我会将排序后的列值作为键存储在 HashMap 中。 HashMap 中的值将是随机访问文件中的地址,其中每条记录与该列值关联的将被存储

有什么想法吗?

最佳答案

每个集合都有一个指针,最初指向第一个条目

然后从集合中选择下一个提供最低条目的结果

将此条目写入文件并递增相应的指针

这种方法基本上没有开销,时间为 O(n)。 (这是合并排序,顺便说一句)

编辑

澄清一下:这是合并排序的合并部分。

关于java - 对 2 个或更多大量结果集进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1748650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com