数据结构:第7章学习小结

一、查找表

1.顺序查找:从表的一端开始,依次将记录的关键字和给定值进行比较,若某个记录的关键字和给定值相等,则查找成功;反之,若扫描整个表后,仍未找到关键字和给定值相等的记录,则查找失败。(既适用于线性表的顺序存储结构,又适用于线性表的链式存储结构)

监视哨的顺序查找:通过设置监视哨, 免去 查找过程中每一步都要检测整个表是否查找完毕

优点:算法简单, 对表结构无任何要求,既适用于 顺序结构, 也适用千链式结构, 无论记录是否按关键字有序均可应用。

缺点:平均查找长度较大, 查找效率较低, 所以当n很大时, 不宜采用顺序查找。

2.折半查找(二分查找)【!!要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列!!】

查找过程:从表的中间记录开始, 如果给定值和 中间记录的关键字相等, 则查找成功;如果给定值大于或者小千中间记录的关键字, 则在表中大于或小千中间记录的那一半中查找,这样重复操作, 直到查找成功,或者在某一步中查找区间为空, 则代表查找失败。

相比于顺序查找,每一次查找区间都缩小一半,提高查找效率

3.分块查找(索引顺序查找):先确定待查记录所在的块(子表),然后在块中顺序查找。

由于 由索引项组成的索引表按关键字有序,则确定块的查找 可以用顺序查找,亦可用折半查找,而块中记录是任意排列的,则在块中只能是顺序查找。
分块查找的算法为顺序查找和分块查找两种算法的简单合成。
4.二叉查找树:左子树<根<右子树
平衡二叉树:|左子树深度和右子树深度差|<=1(在二叉查找树基础上)
B-树:用来解决减少内外存交换次数(增加单个结点数据数)
B+树:B-树基础上增加了叶子结点的指针,能快速访问叶子结点,更适合查找某个范围内的所有关键字。
5.散列表
构造:数字分析法;平方取中法 折叠法;除留余数法;
处理冲突:开放地址法 ;线性探测法 ;二次探测法;伪随机探测法。

 

posted @ 2020-06-28 20:36  伞兵一号篓本韦  阅读(180)  评论(0编辑  收藏  举报