二叉树与 B 树
2-3树是一种多叉树
B 树通过重新组织节点,降低树的高度,并且减少 i/o 读写次数来提升效率。
2-3 树是最简单的 B 树结构, 具有如下特点:
将数列{16, 24, 12, 32, 14, 26, 34, 10, 8, 28, 38, 20} 构建成 2-3 树,并保证数据插入的大小顺序。(演示一下构建 2-3 树的过程.)
插入规则:
除了 23 树,还有 234 树等,概念和 23 树类似,也是一种 B 树。
B-tree 树即 B 树,B 即 Balanced,平衡的意思。有人把 B-tree 翻译成 B-树,容易让人产生误解。会以为 B-树 是一种树,而 B 树又是另一种树。实际上,B-tree 就是指的 B 树。
前面已经介绍了 2-3 树和 2-3-4 树,他们就是 B 树(英语:B-tree 也写成 B-树),这里我们再做一个说明,我们在学 习 Mysql 时,经常听到说某种类型的索引是基于 B 树或者 B+树的,如图:
对上图的说明:
B+树是 B 树的变体,也是一种多路搜索树。
对上图的说明:
B*树是 B+树的变体,在 B+树的非根和非叶子结点再增加指向兄弟的指针。
B*树的说明:
又称为: 前缀树,字典树
取名来自 retrieval
什么是Trie树!??
比如我们一串字符串需要检查拼写错误
数据: code cook Five File Fat
根据匹配这串字符生成的字典树
特点:
此时演示特点三的情况
插入规则:
查找规则:
删除规则
从一个逻辑题来给大家介绍并查集
现在有十个强盗 一号强盗与二号强盗是同伙 三号强盗与四号强盗是同伙 五号强盗与二号强盗是同伙 四号强盗与六号强盗是同伙 二号强盗与六号强盗是同伙 八号强盗与七号强盗是同伙 九号强盗与七号强盗是同伙 一号强盗与六号强盗是同伙 二号强盗与四号强盗是同伙
有一点需要注意 强盗同伙的同伙也是同伙,你能找出来有多少独立的犯罪团伙吗?
根据题目分析出逻辑上三个情况 part1 1 2 5 3 4 6 part 2 7 8 9 part 10
这里数组下标按照从1开始理解;
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
一号和二号一组
1 | 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
三号和四号
1 | 1 | 3 | 3 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
五号和二号
5 | 5 | 3 | 3 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
四号和六号
5 | 5 | 3 | 3 | 5 | 3 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
二号和六号
5 | 5 | 3 | 3 | 5 | 5 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
八号和七号
5 | 5 | 5 | 5 | 5 | 5 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
九号和七号
5 | 5 | 3 | 3 | 5 | 5 | 9 | 9 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
以上是我们用数组变化的方式来理解的并查集逻辑题目,接下来是树的理解
其实就是 合并和查询的集合
合并:把两个不相交的集合合并为一个集合
查询,查询两个元素是否在同一个集合中
用一个元素代表集合,成为集合首领,判断是否在集合中,让元素存储首领来判断,合并需选出新的首领,将被合并的集合元素首领改成新的首领
另一种角度上说,并查集是将一个集合以树结构进行组合的数据结构.