对文件中的数字序列进行排序,而不将其保存到数组中
Sorting a sequence of numbers from within a file without saving them into an array
是否可以在不将数字保存到数组的情况下对文件中的数字序列进行排序?如果可以,如何排序?
我假设这是一个文本文件,而不是二进制文件。文本文件(用于存储数字)的问题之一是数字可能大小不同。
是的,假设所有数字占用相同的空间(这意味着,如果是文本文件,则将所有数字填充为相同的长度)。[好吧,所以从技术上讲,无论如何都可以这样做,但这需要读取两点之间的所有中间数,然后再次将其写回,然后你几乎可以肯定的是,只需读取整个文件并再次将其存储出来会更好]。
至于"如何",该方法与任何其他排序算法几乎相同,读取两个值,如果它们不正常,则交换它们。可能有一些算法可以"减少读取/交换的数量",我还没有研究过
我想,如果你担心的是"我没有足够的内存容纳整个文件",那么你可以读取几个大块,并在这些大块之间进行排序。如有必要,重复上述步骤。同样,可能有专门针对这一点的排序算法,但我不确定是哪一种——当我需要对文本文件进行排序时,我倾向于使用unix sort
。
这个页面上的第一个答案有一个"比较排序"的链接如何使用最小写入次数对数组进行排序?
相关文章:
- 保存/加载大量短数组到二进制文件
- 如何在数组和向量 c++ 中存储和保存输入
- 2D 数组,某些单元格保存特定数据
- 如何在c++中将字符串中的所有数字保存到多维数组中
- 将值更改为 c++ 的数组并保存文件
- 数组不保存初始化值
- 按顺序遍历 AVL 树,将值保存在数组中
- 将 QImage 保存到字节数组
- 将特征数组行保存在变量中
- 将 JPG 编码数组从 ROS sensor_msgs/压缩图像保存到 roscpp 中的文件
- C++ 如何动态保存大量数组?
- 在 tensorflow c++ api 中,如何从张量中保存图片或数组
- 获取C++中的多个输入文件并将其保存在数组中
- 生成唯一的随机字符并将其保存在数组中
- 如何创建一个动态数组,该数组可以保存从C++中派生的同一基类的所有不同对象
- 如何在C++中保存动态数组中的值
- 如何将外部文件中的数据保存到 2D 数组中?(C++)
- GoogleMock SaveArg 用于保存数组?编译器抛出错误,我还没有看到一个好的解决方案
- 保存数组地址的指针的地址是相同的
- 在armadillo中保存数组(立方体)以便稍后在R中加载的最佳格式