本章内容主要为查找。
我们学习了顺序查找、二分查找、二叉排序树、平衡二叉树、B树、B+树。。
顺序查找可以通过设置监视哨来减少查找所需的平均时间,免去查找过程中每一步都要检测整个表是否查找完毕。
折半查找中需要注意的是,折半查找的时间复杂度不一定是log2n,因为需要先对顺序表进行排序,才能满足折半查找的要求。
树表的查找中,对二叉排序树的查找,则通过递归的方式查找,因为二叉排序树的特殊存储数值方式,左子树上所有结点的值均小于它的根节点的值,而右子树上所有结点的值均大于它的根节点的值,因此对于任意一层的结点,都可以通过递归的方式来查找。
平衡二叉树的设置,是为了平衡左右子树的高度,使二叉排序树的结构合理,提高查找速度,因为树的高度越小,查找速度越快。
B树的优点在于权衡了内外存读取的问题,通过将二叉树转换为三叉树等其他结构的树,来提高效率。
而B+树则是在B树的进阶版,B+树除了满足所有B树可以满足的功能以外,还能满足分块查找。
处理冲突的方法则包括开放地址法、链地址法,其中开放地址发包括线性探测法、二次探测法和伪随机探测法。当然,无论是那种方法,都无法避免会产生冲突,但能尽量减少冲突的次数,提高空间利用率。
总结:这个章节难度并不大,最近经过练习,打代码的能力也有所提高,希望可以加快步伐,更快的把知识补起来,融会贯通才能收获更多。
原文地址:https://www.cnblogs.com/Hycomin/p/10965150.html