如果有一个500G的超大文件,里面都是数值,如何对这些数值排序?
首先,对于这个这样一个问题,我们肯定不能直接一次性全部将数据加载到内存里面。
解决思路:
1.先将这个文件里面的值拆分成多个文件,每个文件大小差不多512M。
2.在这1000个小文件里面的值进行排序去重
分两种情况:
① 如果里面的数值不是很大,这样拼接1000文件数值,拼接,去重,排序。对于8G的内存计算机应该是可以处理的。
② 文件里面的数值就是坑爹的大。
3.对于②处理也很简单,对于1000小文件,比如就按升序排序,我们不是已经拿到了每个的 排序么。我们把1000个文件里面最小的值(也就是第一个)拿出来,并把他们从这些文件中删除,拿这些最小值去重排序作为第一个文件,
4.重复上面的步骤,这样我们也得到1000个 这样排好序的文件。
举例
如果有个文件(-1,5,2,1,4,3,2,4,5)
第一步:截取,每3个一个文件得到(-1,5,2),(1,4,3),(2,4,5)
第二步:去重排序(-1,2,5),(1,3,4),(2,4,5)
第三步:拿第一个去重排序得到新的3个小文件(-1,1,2),(2,3,4),(4,5)
看到了吧!按从小到大的顺序就出来了,我们最后都知道(-1,5,2,1,4,3,2,4,5)文件从小到大的顺序是-1,1,2,3,4,5。
如果有一个500G的超大文件,里面都是数值,如何对这些数值排序?相关推荐
- 为什么一个盘里的文件夹都不见了,里面一片空白,但那些文件所占的内存却还在的,但好像没被删除
硬盘空间占用但没文件,硬盘空间占用但文件消失了为什么一个盘里的文件夹都不见了,里面一片空白,但那些文件所占的内存却还在的,但好像没被删除 工具/软件:AornData软件 步骤1:先百度搜索并下载程序 ...
- webuploader+PHP实现超大文件分片上传的功能
在开发<工单地图>的时候,后台平面图上传的功能需要处理10M以上大小的文件上传,单个超大文件上传的时候容易出现各种问题,后来采用了分片上传的思路.将大文件分成多个小的文件分片,逐个上传到服 ...
- php写入大文件内容_用PHP读取超大文件的实例代码
数据量大带来的问题就是单个文件很大,能够打开这个文件相当不容易,记事本就不要指望了,果断死机 去年年底的各种网站帐号信息的数据库泄漏,很是给力啊,趁机也下载了几个数据库,准备学学数据分析家来分析一下这 ...
- java写大文件_java实现超大文件的读写功能
对于几百M或上G的大文件可使用java nio进行读写 , 根据个人的需求 可能需要将一个超大文件读写形成很多较小的文件进行分析,这也不是什么难事,在读完一个缓冲区后 更换写入的对象即可,本文就不做详 ...
- golang mysql大量写入_Golang 实现分片读取http超大文件流和并发控制
分片读取http超大文件流 Golang中的HTTP发送get请求,在获取内容有两种情况. Golang发送http get请求方式 resp, err := http.Get(sendUrl) if ...
- php 远程下载大文件,php下载远程文件(支持断点续传,支持超大文件)
断点下载的原理:http请求头添加Range参数告诉文件服务器端需要的字节范围 例如1个文本文件的字节为1000, 第一次请求Range: bytes=0-500 第二次请求Range: bytes= ...
- 使用分页方式读取超大文件的性能试验
Read extreme large files using paging by Nobi Conmajia (conmajia@gmail.com) May 15th, 2012 (注:本文使用Fi ...
- php 百度网盘上传文件大小限制吗,百度云存储,curl_百度云存储如何上传数G超大文件(视频类)和防盗链等一系列问题,百度云存储,curl - phpStudy...
百度云存储如何上传数G超大文件(视频类)和防盗链等一系列问题 最近在开发一个视频网站,打算用百度开放云平台上的云存储,但视频较大,一般有几个G(高清电影).1G一下的视频管理控制台里能用页面上传,但1 ...
- 区块链亲民应用场景大猜想 第一次或将献给超大文件传输
区块链亲民应用场景大猜想 第一次或将献给超大文件传输 提及区块链,相信大部分人既熟悉又陌生,熟悉是因为比特币这些年的跌宕起伏,让人蠢蠢欲动却又望而生畏:陌生是因为这是一个全新的东西,并没有走进寻常百姓 ...
最新文章
- 使用ASP.NET MVC Futures 中的异步Action
- 计数信号量的删除与状态查询
- 进程间通信之-共享内存Shared Memory--linux内核剖析(十一)
- php 跳转到指定url_PHP想要实现页面跳转功能具体怎么操作?(函数标签示例)...
- 计算机系统的备份与还原实验报告,数据库《数据备份与还原》实验报告.doc
- Spark Yarn Client模式spark.driver.host导致 Cannot assign requested address: Service ‘sparkDriver‘ failed
- c lambda表达式 select 改变字段名称_大神是如何学习 Go 语言之浅谈 select 的实现原理...
- 剑指Offer之平衡二叉树
- curl返回常见错误码
- linux底层内存管理--内核空间的伙伴系统
- android 纳秒级计时器,RDTSC指令实现纳秒级计时器
- Java研发岗面试复盘总结附答案+考点
- 超级玛丽3号max即将停售70版本,到底保障如何,值不值得购买呢
- 非常棒的开源协同办公OA项目,收藏了!
- MMA-Mathematica定义函数
- Tomcat中如何配置使用APR
- QTreeview中虚线框解决办法(QWidget控件祛除焦点)
- 第12章、类和动态内存分配
- 关于考试系统的ajax提交单个答案的压力测试
- 手动查杀浏览器劫持病毒
热门文章
- 基于 Canvas 的 HTML5 交互式地铁线路图
- 学习笔记(05):自然语言处理Word2Vec视频学习教程-影评情感分类任务概述
- Matlab入门:与矩阵相关的一些指令等
- crf的Python实现代码
- ApiCloud云编译失败
- CF1611D Weights Assignment For Tree Edges
- EQ笔记1-什么叫均衡器-百度百科 转载
- 【VC ++ 2010】 C语言 计算机二级编译器 Visual C ++ 2010 Express(中文学习版)的安装与使用
- css3 骨架屏样式_在我们的骨架页面构建中添加样式
- 2017计算机应用基础统考,计算机应用基础统考练习题「附答案」