如何给超大数据排序

keyz 2008-11-30 03:28:55
有一个文件大于4G, 其中每10个字节为一段数据,如何给这些数据排序?算法或者提示皆可。
...全文
261 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
suton 2008-11-30
  • 打赏
  • 举报
回复
大文件操作,没搞过.
以前都是用TFileMemory

4G,超过地址空间了...

估计只能用createfile,readfile,writefile那一组的api了.

临时能想到的办法,也只有这样:
以10个byte为单位,循环读文件.
循环内部:
用两分法,查找读出来的10个byte应该放在那个位置. 然后插入.
喝口水 2008-11-30
  • 打赏
  • 举报
回复
多个线程分段排序,排N次
keyz 2008-11-30
  • 打赏
  • 举报
回复
谢谢3楼。自己查到应该用外排序。主要是分段-内排序-归并。使用堆排序可能效率高些。

to:4楼,数据量太多,估计超过10亿,数据库效率恐怕太低,是否能完成也不一定。
willflyz 2008-11-30
  • 打赏
  • 举报
回复
能不能通过数据库来实现..
僵哥 2008-11-30
  • 打赏
  • 举报
回复
分段,堆排
keyz 2008-11-30
  • 打赏
  • 举报
回复
读到内存不现实,因为内存容量不够4G。而且32位系统不支持超过4G的空间寻址。
Storm2008 2008-11-30
  • 打赏
  • 举报
回复
学习~

自己写算法排序好像比较慢吧
能不能读到数据库中,排好序在读出来

或者利用TStringList

没写过,也没什么好的建议:)

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧