王道数据结构总结笔记--查找

7.1查找的基本概念

基本概念

王道数据结构总结笔记--查找_第1张图片

常见操作

王道数据结构总结笔记--查找_第2张图片

查找算法的评价指标

王道数据结构总结笔记--查找_第3张图片

总结

王道数据结构总结笔记--查找_第4张图片

7.2

7.2.1顺序查找

顺序查找,⼜叫“线性查找”,通常⽤于线性表

算法思想

算法思想:从头到 jio 挨个找(或者反过来也OK)

代码实现

王道数据结构总结笔记--查找_第5张图片

哨兵版

王道数据结构总结笔记--查找_第6张图片

性能分析

王道数据结构总结笔记--查找_第7张图片

顺序查找的优化(对有序表)

王道数据结构总结笔记--查找_第8张图片

⽤查找判定树分析ASL

王道数据结构总结笔记--查找_第9张图片

顺序查找的优化(被查概率不相等)

王道数据结构总结笔记--查找_第10张图片

总结

王道数据结构总结笔记--查找_第11张图片

7.2.2折半查找

折半查找,⼜称“⼆分查找”,仅适⽤于有序的顺序表

算法思想

王道数据结构总结笔记--查找_第12张图片

算法实现

王道数据结构总结笔记--查找_第13张图片

性能分析

王道数据结构总结笔记--查找_第14张图片

折半查找判定树的构造

折半查找的判定树⼀定是平衡⼆叉树

如果当前low和high之间有奇数个元素,则 mid 分隔后,左右两部分元素个数相等;如果当前low和high之间有偶数个元素,则 mid 分隔后,左半部分比右半部分少⼀个元素
折半查找的判定树中,若 ,则对于任何⼀个结点,必有:右⼦树结点数-左⼦树结点数=0或1
王道数据结构总结笔记--查找_第15张图片

总结

王道数据结构总结笔记--查找_第16张图片

7.2.3分块查找

特点:块内⽆序、块间有序
王道数据结构总结笔记--查找_第17张图片

⽤折半查找查索引

王道数据结构总结笔记--查找_第18张图片

性能分析

王道数据结构总结笔记--查找_第19张图片
王道数据结构总结笔记--查找_第20张图片

总结

王道数据结构总结笔记--查找_第21张图片

7.3.1 B树

引入:5叉查找树

王道数据结构总结笔记--查找_第22张图片
王道数据结构总结笔记--查找_第23张图片

性能优化

王道数据结构总结笔记--查找_第24张图片

B树定义

王道数据结构总结笔记--查找_第25张图片

B树的高度

王道数据结构总结笔记--查找_第26张图片
??
王道数据结构总结笔记--查找_第27张图片

总结

王道数据结构总结笔记--查找_第28张图片

7.3.2B树的插入删除

插入

王道数据结构总结笔记--查找_第29张图片

王道数据结构总结笔记--查找_第30张图片

新元素⼀定是插⼊到最底层“终端节点”,⽤“查找”来确定插⼊位置
王道数据结构总结笔记--查找_第31张图片
王道数据结构总结笔记--查找_第32张图片
王道数据结构总结笔记--查找_第33张图片

删除

王道数据结构总结笔记--查找_第34张图片
王道数据结构总结笔记--查找_第35张图片
王道数据结构总结笔记--查找_第36张图片
本质:要永远保证 ⼦树0<关键字1<⼦树1<关键字2<⼦树2<…
王道数据结构总结笔记--查找_第37张图片

总结

王道数据结构总结笔记--查找_第38张图片

7.3.3 B+树

定义

王道数据结构总结笔记--查找_第39张图片
结点的⼦树个数与关键字个数相等
王道数据结构总结笔记--查找_第40张图片

B+树的查找

王道数据结构总结笔记--查找_第41张图片

B+树 VS B树

王道数据结构总结笔记--查找_第42张图片
在这里插入图片描述
王道数据结构总结笔记--查找_第43张图片
王道数据结构总结笔记--查找_第44张图片

下面这张图超出考研大纲要求
王道数据结构总结笔记--查找_第45张图片

总结

王道数据结构总结笔记--查找_第46张图片

7.4散列查找

7.4.1散列查找(上)

散列表(哈希表)
王道数据结构总结笔记--查找_第47张图片

处理冲突的⽅法——拉链法

⽤拉链法(⼜称链接法、链地址法)处理“冲突”:把所有“同义词”存储在⼀个链表中
王道数据结构总结笔记--查找_第48张图片

拉链法的⼩优化
王道数据结构总结笔记--查找_第49张图片

散列查找

王道数据结构总结笔记--查找_第50张图片
理想情况:散列查找时间复杂度可到达O(1)

王道数据结构总结笔记--查找_第51张图片
装填因⼦α=表中记录数/散列表⻓度
王道数据结构总结笔记--查找_第52张图片

常⻅的散列函数

除留余数法

散列表表⻓为m,取⼀个不⼤于m但最接近或等于m的质数p
王道数据结构总结笔记--查找_第53张图片

直接定址法

直接定址法 —— H(key) = key 或 H(key) = a*key + b
王道数据结构总结笔记--查找_第54张图片

数字分析法

数字分析法 —— 选取数码分布较为均匀的若⼲位作为散列地址
王道数据结构总结笔记--查找_第55张图片

平⽅取中法

平⽅取中法——取关键字的平⽅值的中间⼏位作为散列地址
王道数据结构总结笔记--查找_第56张图片

总结

散列查找是典型的“⽤空间换时间”的算法,只要散列函数设计的合理,则散列表越
⻓,冲突的概率越低

7.4.2散列查找(下)

处理冲突的⽅法——开放定址法

线性探测法

王道数据结构总结笔记--查找_第57张图片

查找

王道数据结构总结笔记--查找_第58张图片
王道数据结构总结笔记--查找_第59张图片
越早遇到空位置,就可以越早确定查找失败

删除

采⽤“开放定址法”时,删除结点不能简单地将被删结点的空间置为空,否则将截断在它之后填⼊散列表的同义词结点的查找路径,可以做⼀个“删除标记”,进⾏逻辑删除
王道数据结构总结笔记--查找_第60张图片

性能分析

王道数据结构总结笔记--查找_第61张图片

线性探测法很容易造成同义词、⾮同义词的“聚集(堆积)”现象,严重影响查找效率

平⽅探测法

王道数据结构总结笔记--查找_第62张图片

伪随机序列法

王道数据结构总结笔记--查找_第63张图片

小结

王道数据结构总结笔记--查找_第64张图片

处理冲突的⽅法——再散列法

王道数据结构总结笔记--查找_第65张图片

总结

王道数据结构总结笔记--查找_第66张图片

你可能感兴趣的:(数据结构,数据结构)