1.布隆过滤器
1.1原理
底层为数组,存在1,不存在0,多个hash算法处理一个值,得到的hash分区设置为1。
1.2特点
优点是空间效率和查询时间都比一般的算法要好的多
缺点是有一定的误识别率和删除困难。
即查找某值不存在则一定不存在,查找某值存在可能不存在
1.3作用
查找小孩走失
大数据下对一个大文件进行查询数据是否存在------>通过过滤分区减少搜索范围
2.Hash散列
相同的key值由于hash值一致分在同一组,但容易造成数据倾斜
区别:
随机算列:不在乎同种数据在一起
范围散列:通过范围进行散列
3.BitMap
用0、1组成的一位或者两位…位信息来标记数据出现的次数,减少了存储空间
1Byte=8bit
4.堆
一种完全二叉树
求topn时,用数组结构会一个新的数与之前所有数进行遍历比较。但是用堆时,减少了内存的操作,提高了效率
求最大值用小根堆
求最小值用最大跟
5.双层通划分
事实上,与其说双层桶划分是一种数据结构,不如说它是一种算法设计思想。面对一堆大量的数据我们无法处理的时候,我们可以将其分成一个个小的单元,然后根据一定的策略来处理这些小单元,从而达到目的。
6.数据库索引
7.倒排索引
8.外排序
9.Trie树
10.分布式解决方案 MR/Spark
版权声明:本文为weixin_43853330原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。