这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战
考研倒计时:36天
参考资料: 王道数据结构考研复习指导 天勤数据结构高分笔记
首先,查找分为静态查找和动态查找。无须动态地修改查找表,此类查找表称为静态查找表。
线性结构
对于线性结构的查找,主要有顺序查找、折半查找、以及分块查找
需要注意的tip:
- 对于线性的链表只能进行顺序查找,折半查找只适用于有序的顺序表。
- 有序线性表顺序查找、查找成功的ASL和一般线性表的顺序查找一样。均为,两者查找失败的ASL不一样。
- 折半查找的过程可以用二叉树描述,此树称为判定树,它是一棵平衡二叉树。当,则右子树结点数-左子树结点数=0/1.
- 折半查找,元素个数为n时,树高为或,折半查找在查找不成功时和给定关键字的比较次数最多为树的高度。(没有计入虚构方形结点)。查找成功和查找失败的最多比较次数相同。均为
- 对于分块查找,块内无序,块间有序。ASL=L1+Ls;查找效率最高,每个索引块的大小为根号n,若对索引项和索引块内部都采用折半查找,则ASL为+,均采用顺序查找则为(根号n)+1.
- 折半查找和二叉排序树时间性能有时不相同,二叉排序树的查找性能与数据的输入顺序有关。
- 会画判定树计算ASL
树形结构
B树和B+树
需要注意的tip:
- B树每个结点(非根内部节点)的关键字个数为;根结点1<=n<=m-1;若根结点不是终端结点,至少有两棵子树;每个结点至多有m棵子树,至多含有m-1个关键字。
-
B+树每个结点(非根内部节点)的关键字个数为;根结点2<=n<=m;结点子树个数和关键字个数相等。
-
B+树还支持从最小关键字开始的顺序查找。
- 熟练掌握B树的插入和删除操作。(图片来源 4thirteen2one)
- B树的高度与计算(后续补充)
散列结构
散列表
需要注意的tip:
- 构造散列函数:直接定址法,除留余数法,数字分析法,平方取中法
- 处理冲突的方法有开放定址法:线性探测法(聚集),平方探测法(0,1,-1,4,-4),再散列法,拉链法。 开放定址不能随便删除元素,拉链可以。
- 装填因子:表中记录数n/散列表长度m
- 查找效率取决于:散列函数、处理冲突的方法、装填因子
- 散列表的ASL依赖于装填因子,而不直接依赖于n或m
- 计算ASL,注意H(key)=0~6,查找失败就➗7;查找成功则➗元素个数。可以利用王道286页例题456练习。
部分内容待补充完善~
如有误,请多指正!