面对海量的数据,我们应该如何处理?

本文探讨了如何处理海量数据,强调了算法和数据结构的重要性,如Bloom Filter、Hash、Bit-map、堆和trie树等。介绍了这些数据结构在解决时间与空间问题上的应用,特别适合于大数据场景。此外,还分享了面试中与海量数据处理相关的问题及解决方案,包括使用分而治之的策略和特定数据结构来高效地解决问题。
摘要由CSDN通过智能技术生成
一、海量数据处理

所谓海量数据处理,无非就是基于海量数据上的存储、处理、操作。何谓海量,就 是数据量太大,所以导致要么是无法在较短时间内迅速解决,要么是数据太大,导 致无法一次性装入内存。

那解决办法呢?

针对时间,我们可以采用巧妙的算法搭配合适的数据结构,如Bloom filter/Hash/bit- map/堆/trie树。 针对空间,无非就一个办法:大而化小,分而治之(hash映射)。
相关内容之后会在GitHub上更新,希望多多关注

顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找
https://github.com/xiangjiana/Android-MS
更多完整项目下载。未完待续。源码。图文知识后续上传github。
可以点击关于我联系我获取

二、算法/数据结构基础
1.Bloom Filter

Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地 表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在 集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也 就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,有一 定的概率判断错误。因此,Bloom Filter不适合那些“零错误”的应用场合。

而在能容忍低错误率的应用场合下,Bloom Filter比其他常见的算法(如hash,折 半查找)极大节省了空间。

适用范围: 可以用来实现数据字典,进行数据的判重,或者集合求交集

2.Hash

Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又 叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是 散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空 间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入 值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

3. Bit-map

所谓的Bit-map就是用一个bit位来标记某个元素对应的值。由于采用了Bit为单位来 存储数据,因此在存储空间方面,可以大大节省。 如果说了这么多还没明白什么是Bit-map,那么

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值