update readme

This commit is contained in:
ranwenjie
2021-11-06 23:46:45 +08:00
parent 7e39c63098
commit 3a88447c9d
12 changed files with 29 additions and 24 deletions
@@ -1,16 +1,16 @@
## Bitmap
# Bitmap
也就是用1个(或几个)bit位来标记某个元素对应的value(如果是1bitmap,就只能是元素是否存在;如果是x-bitmap,还可以是元素出现的次数等信息)。使用bit位来存储信息,在需要的存储空间方面可以大大节省。应用场景有:
1. 排序(如果是1-bitmap,就只能对无重复的数排序)
2. 判断某个元素是否存在
1. 判断某个元素是否存在
2. 排序(如果是1-bitmap,就只能对无重复的数排序)
比如,某文件中有若干8位数字的电话号码,要求统计一共有多少个不同的电话号码?
分析:8位最多99 999 999, 如果1Byte表示1个号码是否存在,需要95MB空间,但是如果1bit表示1个号码是否存在,则只需要 95/8=12MB 的空间。这时,数字k(0~99 999 999)与bit位的对应关系是:
分析:8位最多99 999 999, 如果1Byte表示1个号码是否存在,需要95MB空间,但是如果1bit表示1个号码是否存在,则只需要 95/8=12MB 的空间。这时,数字 `k(0~99 999 999)`与bit位的对应关系是:
```
#define SIZE 15*1024*1024
@@ -1,4 +1,3 @@
# Bloom filter(布隆过滤器)
Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在海量数据处理中,一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合(容忍错误的场景)。
@@ -1,5 +1,4 @@
## 倒排索引(Inverted Index)
# 倒排索引(Inverted Index)
常规的索引是文档到关键词的映射,就是每个文档指向一个它所包含的索引项的序列,也就是文档文档指向了它包含的索引项序列,也就是文档指向它包含的哪些单词。
@@ -1,5 +1,4 @@
## 数据库索引
# 数据库索引
索引使用的数据结构多是B树或B+树。B树和B+树广泛应用于文件存储系统和数据库系统中,mysql使用的是B+树,oracle使用的是B树,Mysql也支持多种索引类型,如b-tree 索引,哈希索引,全文索引等。
+8 -8
View File
@@ -6,15 +6,15 @@
针对空间,就一个办法,大而化小,分而治之。常采用hash映射
* Hash映射/分而治之
* Bitmap
* Bloom filter(布隆过滤器)
* 双层桶划分
* Trie树
* 数据库索引
* [Hash映射,分而治之](Hash映射,分而治之.md)
* [Bitmap](Bitmap.md)
* [Bloom filter(布隆过滤器)](Bloomfilter.md)
* [双层桶划分](双层桶划分.md)
* [Trie树](../4%20Tree/4-字典树Trie/README.md)
* [数据库索引](Inverted%20Index/数据库索引.md)
* 倒排索引(Inverted Index)
* 外排序
* simhash算法
* [外排序](../6%20Sort/外排序.md)
* [simhash算法](simhash算法.md)
* 分布处理之Mapreduce
+1 -3
View File
@@ -1,6 +1,4 @@
## 双层桶划分
# 双层桶划分
双层桶不是一种数据结构,只是一种算法思维。分而治之思想。