转:http://blog.redfox66.com/post/mass-data-topic-5-heap.aspx
【什么是堆】
概念:堆是一种特殊的二叉树,具备以下两种性质
1)每个节点的值都大于(或者都小于,称为最小堆)其子节点的值
2)树是完全平衡的,并且最后一层的树叶都在最左边
这样就定义了一个最大堆。如下图用一个数组来表示堆:
那么下面介绍二叉堆:二叉堆是一种完全二叉树,其任意子树的左右节点(如果有的话)的键值一定比根节点大,上图其实就是一个二叉堆。
你一定发觉了,最小的一个元素就是数组第一个元素,那么二叉堆这种有序队列如何入队呢?看图:
假设要在这个二叉堆里入队一个单元,键值为2,那只需在数组末尾加入这个元素,然后尽可能把这个元素往上挪,直到挪不动,经过了这种复杂度为Ο(logn)的操作,二叉堆还是二叉堆。
那如何出队呢?也不难,看图:
出队一定是出数组的第一个元素,这么来第一个元素以前的位置就成了空位,我们需要把这个空位挪至叶子节点,然后把数组最后一个元素插入这个空位,把这个“空位”尽量往上挪。这种操作的复杂度也是Ο(logn)。
【适用范围】
海量数据前n大,并且n比较小,堆可以放入内存
【基本原理及要点】
最大堆求前n小,最小堆求前n大。方法,比如求前n小,我们比较当前元素与最大堆里的最大元素,如果它小于最大元素,则应该替换那个最大元 素。这样最后得到的n个元素就是最小的n个。适合大数据量,求前n小,n的大小比较小的情况,这样可以扫描一遍即可得到所有的前n元素,效率很高。
【扩展】
双堆,一个最大堆与一个最小堆结合,可以用来维护中位数。
【问题实例】
1)100w个数中找最大的前100个数。
用一个100个元素大小的最小堆即可。
分享到:
相关推荐
数据建模专题培训——大数据挖掘主要...在这个过程中,数据建模是关键,它帮助我们理解和利用这些海量数据,实现智慧的政府、商业和个人服务。因此,理解和掌握大数据挖掘的方法与应用对于个人和组织的发展至关重要。
而为了增进公众对大数据研究中关键技术问题的理解,《工程研究》杂志特别推出了“大数据处理中的基础理论与关键技术研究”专题征文活动。 征稿的研究范围包括但不限于以下方向: 1. 面向网络信息空间大数据挖掘的...
《云计算与大数据》一书详细讨论了云计算的发展历程以及大数据处理所面临的五大问题,深刻分析了云计算与大数据之间的关系,并通过公有云、私有云、混合云等多角度深入解读了行业内的软硬件定义和硬件回归的趋势。...
大数据章节可能会介绍数据处理、存储和分析的方法,以及大数据平台如Hadoop的使用。物联网部分则可能讨论了物联网设备的接入管理,以及如何确保数据中心的安全性面对海量的物联网数据。 此外,这两份教材很可能还...
大数据(Bigdata)是指在一定时间和空间范围内,大量、快速、多样化的数据集合,这些数据通过新的处理模式,具有更强的决策力、洞察力和流程优化能力。大数据技术的应用已经广泛渗透到各个行业和领域,不仅改变了...
这样的架构模式能够满足5G网络所要求的低延迟和高速度,处理海量数据。边缘计算的率先受益,得益于其在5G商用前周期中,就对数据处理和实时通讯能力有迫切需求。其主要应用场景包括数据密集型和设备密集型区域,例如...
在技术创新方面,京东可能采用了Hadoop、Spark等开源大数据处理框架,结合自研技术,构建起高效的数据处理流水线。这样的架构可以支持实时和离线分析,满足不同场景下的业务需求。此外,京东可能还利用机器学习和...
同时,为了处理海量数据,通常会采用分布式数据库系统,如Hadoop或Spark,配合NoSQL数据库如MongoDB或Cassandra进行存储。 电子地图的设计关键在于信息的可视化。GIS(地理信息系统)技术在这里发挥着核心作用,...
而Savant则是一种数据分析平台,用于处理海量的物联网数据,从中提取有价值的信息。 ### 4. 物联网的研究进展与面临的挑战 #### 3.1 研究进展 物联网的研究已取得了显著成果,包括RFID技术的成熟、EPC系统的完善...
大数据提供了足够的样本和复杂模式供深度学习模型训练,使得模型能够从海量数据中学习到更深层次的规律。同时,高性能计算硬件,如GPU的快速发展,也极大地推动了深度学习算法的计算效率,使得处理大规模数据成为...
本篇专题资料将对比两种主流的MPP数据库产品——Greenplum和Vertica。 **1. Greenplum** 1.1 **基础架构** Greenplum是一款基于Hadoop的分布式数据库,其核心架构由Master Servers和Segment Servers构成。Master...
3. **大数据与数据分析**:互联网产生了海量数据,财务管理可以通过大数据分析,发现潜在的经营问题,优化决策。天缘公司可能利用数据分析工具,挖掘财务数据背后的商业价值,为战略规划提供依据。 4. **移动财务...
标题中的“基于大数据的新闻内容生产效能评估——以上海某媒体为例”暗示了这是一个关于如何利用大数据技术来分析和优化新闻生产效率的研究案例。在这个专题中,我们将深入探讨以下几个核心知识点: 1. 大数据定义...
随着海量数据的产生,高效率、高可用性、绿色节能的数据中心变得越来越重要。它们负责存储、处理和分析来自物联网设备的大量数据,为业务决策和智能服务提供支持。 5. **绩优股**:这个描述可能是指在通信、物联网...
- **专题图符号和线型数据库**:按照国家统一数据标准。 - **县Spot5图像数据库**:存储高分辨率的卫星图像数据。 - **基础地理图形数据库**:存储行政界线、交通、水系等信息。 - **工程建设数据库**:存储规划、...
海量的网络信息不仅要求高效率的存储与处理,还要求及时更新与维护,以确保信息资源的准确性和可用性。这就对传统图书馆的信息管理能力提出了新的要求。在这样的背景下,网络资源书目控制的重要性与复杂性日益凸显。...
首先,存储技术的进步使得我们能够更高效地存储海量数据。例如,分布式文件系统如Hadoop的HDFS,提供了高容错性和扩展性,使得存储不再是瓶颈。其次,处理技术的创新如MapReduce和Spark,允许快速处理大规模数据,...
通过深入分析腾讯在构建和优化大规模Hadoop集群方面的实践,我们可以看出,在大数据时代,如何提高数据处理和计算的效率、提升系统的稳定性和扩展性,是企业技术团队需要持续关注和投入的方向。腾讯的经验和实践为...