.Style:Mac
Series:Java
Since:2018-09-10
End:2018-09-10
Total Hours:1
Degree Of Diffculty:5
Degree Of Mastery:5
Practical Level:5
Desired Goal:5
Archieve Goal:3
Gerneral Evaluation:3
Writer:kingdelee
Related Links:
http://www.cnblogs.com/kingdelee/
https://blog.csdn.net/v_july_v/article/details/6530142
1.
伸展树,保证从空树开始连续M次对数的操作最多话费0(M log N)的时间
基本思想:
当一个节点被访问后,它就要经过一系列的AVL树旋转,推到根上。
好处:对于访问较深的节点,重构后就变快了。
特性:不要求保留高度或平衡信息
展开:
zig-zag:
zig-zig:
举例:
B树:
1.定义关键字个数,即每个节点最多能够存储的关键字数
B和B+树的区别在于,B+树的非叶子结点只包含导航信息,不包含实际的值,所有的叶子结点和相连的节点使用链表相连,便于区间查找和遍历。
B+ 树的优点在于:
- 由于B+树在内部节点上不好含数据信息,因此在内存页中能够存放更多的key。 数据存放的更加紧密,具有更好的空间局部性。因此访问叶子几点上关联的数据也具有更好的缓存命中率。
- B+树的叶子结点都是相链的,因此对整棵树的便利只需要一次线性遍历叶子结点即可。而且由于数据顺序排列并且相连,所以便于区间查找和搜索。而B树则需要进行每一层的递归遍历。相邻的元素可能在内存中不相邻,所以缓存命中性没有B+树好。