(c++)如何编程实现对5G的数据排序?

damaoshan 2015-04-10 09:40:45
不知道怎么把5G的数据存在内存中。
数组?or?

linux的sort命令很好用,但是不知道它的源码是怎么样的。

嗯。多谢了~
...全文
388 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
damaoshan 2015-04-14
  • 打赏
  • 举报
回复
引用 20 楼 wwwfffhhh 的回复:
把数据尽量平均分配到100个数据值范围,例如第一个范围0~10,第二个范围10~21,第三个范围21~30,……,然后抽取每个范围内的数据进行排序,然后按顺序组合这100个范围内的数据则可。 如果100个值范围不够,那么就1000个范围好了。
大赞!!!
damaoshan 2015-04-11
  • 打赏
  • 举报
回复
引用 18 楼 zhangxiangDavaid 的回复:
[quote=引用 9 楼 damaoshan 的回复:] [quote=引用 8 楼 zhangxiangDavaid 的回复:] [quote=引用 4 楼 damaoshan 的回复:] [quote=引用 3 楼 zhangxiangDavaid 的回复:] 只要内存足够,可以把5G的数据放入内存
用数组还是什么存放呢? [/quote] 最简单的是把内存开辟到堆上 [/quote] 具体点,是啥代码呢?比如用c++ 内存开辟到堆上是啥意思呢?[/quote] x64下,new char[5G]; [/quote] 好的,在下小白,烦扰回复了!
line_us 2015-04-11
  • 打赏
  • 举报
回复
难道数据管理工具没有排序功能
牧童吃五谷 2015-04-11
  • 打赏
  • 举报
回复
把数据尽量平均分配到100个数据值范围,例如第一个范围0~10,第二个范围10~21,第三个范围21~30,……,然后抽取每个范围内的数据进行排序,然后按顺序组合这100个范围内的数据则可。 如果100个值范围不够,那么就1000个范围好了。
苏叔叔 2015-04-10
  • 打赏
  • 举报
回复
引用 4 楼 damaoshan 的回复:
[quote=引用 3 楼 zhangxiangDavaid 的回复:] 只要内存足够,可以把5G的数据放入内存
用数组还是什么存放呢? [/quote] 最简单的是把内存开辟到堆上
Isnis-fallen 2015-04-10
  • 打赏
  • 举报
回复
冒泡排序法
赵4老师 2015-04-10
  • 打赏
  • 举报
回复
用文件读写模拟内存读写。 Windows:_fseeki64 Linux:fseeko64
707wk 2015-04-10
  • 打赏
  • 举报
回复
引用 1 楼 jiht594 的回复:
搜索"外排序"
+1
damaoshan 2015-04-10
  • 打赏
  • 举报
回复
引用 3 楼 zhangxiangDavaid 的回复:
只要内存足够,可以把5G的数据放入内存
用数组还是什么存放呢?
苏叔叔 2015-04-10
  • 打赏
  • 举报
回复
只要内存足够,可以把5G的数据放入内存
damaoshan 2015-04-10
  • 打赏
  • 举报
回复
引用 1 楼 jiht594 的回复:
搜索"外排序"
如果内存足够大,也必须要用外排序吗?
jiht594 2015-04-10
  • 打赏
  • 举报
回复
搜索"外排序"
苏叔叔 2015-04-10
  • 打赏
  • 举报
回复
引用 9 楼 damaoshan 的回复:
[quote=引用 8 楼 zhangxiangDavaid 的回复:] [quote=引用 4 楼 damaoshan 的回复:] [quote=引用 3 楼 zhangxiangDavaid 的回复:] 只要内存足够,可以把5G的数据放入内存
用数组还是什么存放呢? [/quote] 最简单的是把内存开辟到堆上 [/quote] 具体点,是啥代码呢?比如用c++ 内存开辟到堆上是啥意思呢?[/quote] x64下,new char[5G];
damaoshan 2015-04-10
  • 打赏
  • 举报
回复
引用 16 楼 LinuxTiger 的回复:
用外排序或多线程排序。
多线程排序,高大上
对象 2015-04-10
  • 打赏
  • 举报
回复
用外排序或多线程排序。
damaoshan 2015-04-10
  • 打赏
  • 举报
回复
引用 14 楼 zilaishuichina 的回复:
数组 最简单,然后快排
数组最大能存放多少数据啊
zilaishuichina 2015-04-10
  • 打赏
  • 举报
回复
数组 最简单,然后快排
赵4老师 2015-04-10
  • 打赏
  • 举报
回复
引用 楼主 damaoshan 的回复:
不知道怎么把5G的数据存在内存中。 数组?or? linux的sort命令很好用,但是不知道它的源码是怎么样的。 嗯。多谢了~
自己看sort命令的源代码啊!别忘了linux是开源的。
赵4老师 2015-04-10
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
用文件读写模拟内存读写。 Windows:_fseeki64 Linux:fseeko64
正解!
damaoshan 2015-04-10
  • 打赏
  • 举报
回复
引用 10 楼 shiguojie19892 的回复:
5G放到内存里面呀,一定要这样吗?不能排一个G保存一个G么? 排序嘛,用STL的set就可以吧 自动排序。
linux的sort似乎一下子就搞定了,不知道他原理。 顺问,在哪里看sort的代码? 多谢!
加载更多回复(2)

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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