gpt4 book ai didi

c - 从 C 中的文件中一次访问读取 N 个整数

转载 作者:行者123 更新时间:2023-12-02 22:09:18 24 4
gpt4 key购买 nike

我正在尝试在 C 中实现外部排序

我必须首先从一个文件中读取 N 个整数(固定值取决于主内存),以便我可以对它们应用快速排序,然后继续合并过程。

我可以想到这两种方式:

  1. 从文件中一个一个读取N个整数,将它们放入一个数组中,然后对它们进行排序。
  2. 将大量数据读入一个大字符数组,然后使用 sscanf 从中读取整数。

第一种方法显然很慢,第二种方法使用了大量额外的内存(但我们的主内存有限)

有没有更好的方法?

最佳答案

不要试图比你的操作系统更聪明,它可能支持一些聪明的内存管理功能,这将使你的生活更轻松,你的代码更快。

假设您使用的是符合 POSIX 标准的操作系统,那么您可以使用 mmap(2) .

  1. 使用 mmap 将文件映射到内存
  2. 排序
  3. 同步

这样,操作系统将在空间紧张时处理换出数据,并在您需要时换入。

关于c - 从 C 中的文件中一次访问读取 N 个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15612158/

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