海量数据处理常用数据结构及方法

在大数据时代,处理海量数据成为面试热门。本文介绍了几种常用方法:bitmap用于快速查找和判重,堆适用于求海量数据的前n大,trie树处理大量重复数据,hash用于快速查找和删除,分而治之是通用策略,双层桶划分用于确定范围,Bloom filter实现数据判重,MapReduce处理大规模数据。
摘要由CSDN通过智能技术生成

大数据时代,海量数据的分析也成为了各大公司面试的热点问题。本文总结了几种常用的方法。

 

数据结构

 

bitmap

 

适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下
基本原理及要点:使用bit数组来表示某些元素是否存在;判重一般采用2-bitmap,即采用两个bit位来表示一个数据出现的次数(00表示未出现、01表示出现一次、10表示出现两次及其以上)

 

 

这里的堆不是我们提到的堆栈里的堆,而是用来排序的堆。

适用范围:海量数据前n大,并且n比较小,堆可以放入内存
基本原理及要点:最大堆求前n小,最小堆求前n大。维护一个拥有n个节点的堆,依次遍历剩下的元素,与堆顶元素比较,适当的时候替换堆顶元素,并调整堆。另外双堆可以用来维护中位数。

 

trie树

 

适用范围:数据量大,重复多,但是数据种类小可以放入内存
基本原理及要点:节点孩子的表示方式

 

hash

 

适用范围:快速查找、删除的基本数据结构,通常需要总数据量可以放入内存
基本原理及要点:hash函数选择,针对字符串、整数、排列等具体相应的hash方法;hash冲突的解决方式。

 

其他方法

 

分而治之

 

适用范围:几乎可用于所有的问题,经常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值