使用多个文件与多个缓冲区用什么?

问题描述

我有一个程序,它创建两个数字列表,排序并存储在磁盘上。任务是使用线性合并合并两个列表。它们都经过排序并且可以快速合并。一个列表包含 1,00,000 个项目,另一个列表包含大约 80,000 个。每一项都是一个 4 字节的整数。这是布局:

list1 长度 |列表1 | list2 长度 |列表2

要合并有两种技术:-

  1. 使用 1024*16 字节的缓冲区并从每个列表中读取。首先查找list1,然后获取,然后在list2 上相同。并且某些整数可能会被忽略,因为它可能不存在于当前缓冲区中,因此在获取下一个缓冲区时保留最后未匹配的整数以进行匹配。重复直到列表结束。这可能需要多次查找。
  2. 创建两个文件指针并从每个列表中读取。寻找指向 list1 开头的第一个文件指针和指向 list2 开头的第二个文件指针。

我的问题是逐个缓冲区读取缓冲区是好的(您必须多次查找每个列表)还是使用多个文件指针?多次打开单个文件是好习惯吗? 我觉得从硬件层面来说,两者是一样的,但是从软件层面或操作系统层面有什么不同吗?这两个列表是例如;我有多个列表要合并。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...