大数据排序方案---外排序介绍
原文:http://blog.sina.com.cn/s/blog_62186b4601019uz1.html
我们一般提到排序都是指内排序,比如快排,堆排序,归并排序等,所谓内排序就是能把所有待排序的数据外进内存之中,比如,一个数组之中。但是如果文件太大,文件中的所有数据不能一次性的放入内存之中,快排,堆排序,归并排序等内排序就无法工作了。
比如下面的程序生成了一个包含266万个int整型的文件,为了排序这266万个int整型,我们用外排序。
阶段二:将每对有序数据段(比如S1跟S2、S3跟S4....)合并为一个大的有序的数据段,将其存入一个新的临时文件。重复此过程,直至只剩下一个数据段。
完整的实现代码详见:http://www.oschina.net/code/snippet_176897_13955
(1)int numberOfSegments =initializeSegments(MAX_ARRAY_SIZE, "largedata.dat", "f1.dat");
从原文件中创建初始数据段,并将有序数据段存入文件f1.dat中。
(2)merge(numberOfSegments, MAX_ARRAY_SIZE, "f1.dat", "f2.dat", "f3.dat");
merge((numberOfSegments + 1) / 2, segmentSize * 2, f3, f1, f2);
递归函数merge当numberOfSegments变为1时终止,在此情况下,f1包含排好序的数据。将f1复制到sortedlargedata.dat。
在外排中,主要的代价是文件IO。假定原文件中待排序的数据个数为n。
在阶段一种,从原文件读取了n个元素,并写入临时文件,因此阶段一的IO开销为O(n)。
大数据排序方案---外排序介绍相关推荐
- 证券期货行业监管大数据治理方案研究
证券期货行业监管大数据治理方案研究 蒋东兴1, 高若楠2, 王浩宇2 1. 中国证券监督管理委员会信息中心,北京 100033: 2. 中证信息技术服务有限责任公司,北京 100033 摘要:为充分发 ...
- 新一代企业级大数据应用方案
摘要:本文的整理自2017云栖大会-成都峰会上阿里云资深专家张辉的分享讲义,讲义主要由大数据时代大数据方案的三个思考引出大数据时代企业数据应用架构:由数据模型层到计算模型层到接口层.随后介绍了OLT- ...
- 【大数据相关】电商大数据之用户画像介绍
因为平时工作中接触的跟大数据有关,于是学习了一下大数据 第一篇学习的是:慕课网 -- 大数据 -- 电商大数据之用户画像介绍 笔记--基本概念介绍: 1.用户画像的价值 --- 有利于精准营销,营销 ...
- 第三课 大数据技术之Spark-RDD介绍和转换算子
第三课 大数据技术之Spark-RDD介绍和转换算子 文章目录 第三课 大数据技术之Spark-RDD介绍和转换算子 第一节 RDD相关介绍 1.1 什么是 RDD 1.2 核心属性 1.3 执行原理 ...
- 作者:石在辉(1983-),男,中移(苏州)软件技术有限公司大数据产品部方案架构师。...
石在辉(1983-),男,中移(苏州)软件技术有限公司大数据产品部方案架构师,主要从事解决方案.战略规划.产品规划等工作.
- (1)大数据和应用场景介绍
专栏目录 (1)大数据和应用场景介绍 (2)大数据技术综述总结 (3)HDFS原理与高可用技术原理介绍 (4)Yarn架构.资源管理原理和运维技术介绍 (5)Kafka原理和高可用介绍 1.大数据基本 ...
- 基于区块链的大数据确权方案
基于区块链的大数据确权方案 王海龙_gjq5464的博客-CSDN博客 区块链技术如何实现大规模数据确权?个人数据资产化:数据确权是核心_陀螺财经
- 大数据和Hadoop平台介绍
大数据和Hadoop平台介绍 定义 大数据是指其大小和复杂性无法通过现有常用的工具软件,以合理的成本,在可接受的时限内对其进行捕获.管理和处理的数据集.这些困难包括数据的收入.存储.搜索.共享.分析和 ...
- 数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并
数据结构与算法 第八天常见排序+冒泡排序+快速排序+文件IO+大数据排序+文件合并 第一章 冒泡排序 [1]Bubble_Sort.c 第二章 快速排序 [1]quick_sort.c 第三章 大数据 ...
最新文章
- ios framework 查看symbol_iOS开发高级分享 - App间账号共享与SDK封装
- 任意角度人脸检测pcn
- android学习---LinearLayout
- Python接口测试-模块引用与映射
- 对外汉语语料库有哪些_国内语料库建设一览表
- python 日历查询系统_python 日历
- 大白话带你梳理一下Dubbo的那些事儿
- 计算机学校综合管理系统论文,学校综合管理系统的设计与实现毕业设计论文.doc...
- 数据库设计的范式规范
- 16 计划稳定性与控制
- 设置Listview行高--小技巧
- Squid 配置文件详解
- paypal android 教程,android端集成paypal
- 防火门可以根据EN 1634-1 标准测试吗?
- 动手搭建自己的本地测试服务器
- MSSqlserver的锁模式介绍
- 11个趣味段子,个个蕴含深刻哲理!
- python语法基础知识第四关第二题_Python基础语法习题二
- slice与splice用法
- 免费云服务器使用体验
热门文章
- 一份来自太空的新年礼物——“元旦京港澳天宫对话”活动侧记
- ASP.NET machineKey的作用和使用方法
- Python:CSV到MySQL数据库
- 四、项目生命周期和开发生命周期
- IT人的日韩俄语歌单:已然被二次元的“恋爱循环”洗脑
- 作为一个在大厂工作多年的“螺丝钉”。生锈了,等待随时被换掉。
- 通过ssh代理连接内网MySQL
- yolov8 瑞芯微 RKNN 的 C++部署
- WPF 密码框按下和抬起事件
- python玫瑰花数量的含义_玫瑰数量的含义