海量数据排序问题一一 100G 数据,只有 100M 内存,怎么排序?
100G 数据,按照 100M 内存拆分,然后排序有序的数据,然后写入到 file1,file2…file100。
多路归并
第一回合:
从 file1,file2,file3……file100.取出第一个数。及最小的。所有的初始指针都是第一行。
min1=min(min1=min(fil1,file2,file3…..file100);file2,file3…..file100);min1 写入到大数据文件。大数据行数指针+1。min1对应的行数指针+1。
第二回合:
从file1,file2,file3……file100.取出第一个数。及最小的。所有的初始指针都是第一行。min2 = min(fil1,fil1,file2,file3…..file100); min2写入到大数据文件。大数据行数指针+1。min2写入到大数据文件。大数据行数指针+1。min2 对应的行数指针+1。
多路归并排序:
function mergeMultiArray($arr)
{//初始化参赛 PK 的数据40foreach($arr as $key => $items){//初始化每个参赛的第一个元素$idx[$key] = 0;}$retArr = array();$retIdx = 0;while(false == empty($arr)){$min = null;//最小值$minKey = null;//最小值得代表队编号foreach($arr as $key => $items){$tmpIdx = $idx[$key];//参赛代表对当前指针$tmpMin = $items[$tmpIdx];//参赛代表对的值$tmpKey = $key;//参赛代表对的编号if(null == $min || $tmpMin < $min){$min = $tmpMin;$minKey = $key;}}//写入结果$retArr[$retIdx] = $min;$retIdx++;//或者队伍的指针+1$idx[$minKey]++;//参赛代表队,队员已经用完了if($idx[$minKey] >= count($arr[$minKey])){unset($arr[$minKey]);}}return $retArr;
}
$ret = mergeMultiArray(array(array(1,10,100),array(2,30,70),array(4,6,9)));
print_r($ret);
海量数据排序问题一一 100G 数据,只有 100M 内存,怎么排序?相关推荐
- 海量数据排序问题——如果有1TB的数据需要排序,但只有32GB的内存如何排序处理?
1.外排序 传统的排序算法一般指内排序算法,针对的是数据可以一次全部载入内存中的情况.但是面对海量数据,即数据不可能一次全部载入内存,需要用到外排序的方法.外排序采用分块的方法(分而治之),首先将数 ...
- 100G 数据,只有 100M 内存,怎么排序?
100G 数据,按照 100M 内存拆分,然后排序有序的数据,然后写入到 file1,file2-file100. 多路归并. 第一回合: 从 file1,file2,file3-file100.取出 ...
- 小内存海量数据,找中位数: 只有2G内存,在10G数据量怎样找到中位数?
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). ...
- vaex库使用方法python_Python秒开100G数据是怎么办到的?
Python秒开100G数据是怎么办到的? 在这个数据爆炸的时代,我们通常要对海量的数据进行分析,少则几十G,多则上百G,对于这样的数据我们打开都很困难,又该如何分析呢?通常都会采取下面几个方案: 对 ...
- 秒级处理海量数据,浙江移动大数据平台是怎么做到的?
近年来,随着云计算.移动互联网.物联网等技术的发展,以及智能手机.平板电脑等终端设备的不断涌现,各种类型的电商.社交媒体等应用快速发展,产生了海量的数据,并且数据量增长的速度越来越快,庞大的数据资源引 ...
- 秒级处理海量数据,浙江移动大数据平台是怎么做到的
项目背景 近年来,随着云计算.移动互联网.物联网等技术的发展,以及智能手机.平板电脑等终端设备的不断涌现,各种类型的电商.社交媒体等应用快速发展,产生了海量的数据,并且数据量增长的速度越来越快,庞大的 ...
- zw·10倍速大数据与全内存计算
zw·10倍速大数据与全内存计算 zw全内存10倍速计算blog,早就在博客园机器视觉栏目发过,大数据版的一直挂着,今天抽空补上. 在<零起点,python大数据与量化交易>目录中 htt ...
- 【Linux服务器开发】1.4 布隆过滤器-判断海量数据中某条数据是否存在
目录 0.链接 1.问题的引入 2.看看是否有可供选择的数据结构来帮助我们判断在海量数据中某条数据是否存在 2.1 红黑树 2.1.1 从时间来分析 2.1.2 从空间来分析 2.2 哈希表 2.2 ...
- 黑客组织利用El Machete窃取全球政府超过100G数据
网络间谍活动一直是热议的话题,各类媒体不乏频现各种网络间谍活动,尤其前几年更是"炒得火热".近期,网络间谍活动又"风生水起". 黑客组织利用El Machete ...
- python下载文件到本地-Python下载网络文本数据到本地内存的四种实现方法示例
本文实例讲述了Python下载网络文本数据到本地内存的四种实现方法.分享给大家供大家参考,具体如下: import urllib.request import requests from io imp ...
最新文章
- MSDN中关于变体数据类型
- 1、oracle后台进程(数据字典V$BGPROCESS)
- 使用Python 正则匹配两个特定字符之间的字符方法
- python 绝对路径找不到文件_python获取文件绝对路径解决找不到文件句柄的问题实例(readConfig.py)V1.2...
- VC 运行时库 /MD、/MDd 和 /MT、/MTd
- 14万程序员挑战过的算法趣题
- cocos2dx 学习笔记之摄像头与3D精灵的移动
- 英语动名词可以做什么句子成分
- 2021年C/C++Linux服务器开发/后台架构师知识体系整理(持续更新中)
- Word控件Spire.Doc 【文本】教程(14) ;如何用图片替换Word中的文字
- 第 3-2 课:SpringBoot如何优雅地使⽤ MyBatis XML 配置版
- Origin数据设置为日期/时间的方法
- HCIA(HCNA):AAA原理与配置
- %在C语言计算中的用法
- 什么软件可以将win窗口进行置顶_电脑极简指南,这5个方法可以帮你节约生命...
- 线型(Line styles)的英文名称
- linux stopped 进程,linux 查杀 stopped 进程
- 特征选择: 卡方检验、F 检验和互信息
- 中国7大行业进入微利时代 房地产无法幸免未来5年中国最有钱景的9种工作
- 网卡属于计算机网络的传输介质吗,两台电脑通过双绞线和网卡互连算不算计算机网络?...
热门文章
- 大学c语言循环教材,大一C语言教材《C语言程序设计》第5章 循环程序设计.ppt教案.ppt...
- C语言:大小字母转换(ASCII码)
- 微软雅黑繁体_近日,一款免费可商用繁体中文字体开始公测了
- 方舟php服务器控制,方舟基本管理命令代码
- 流畅的python mobi 百度云_流畅的python【中文版】mobi下载
- hackerrank初级篇之Plus Minus
- dojo省份地市级联之地市Dao接口类(四)
- 嵌入式软件测试怎么实现自动化测试?
- mysql条件触发器实例_mysql触发器实例一则
- 计算机网络第七版课后答案(谢希仁版)