05. 查找
查找
1. 基本概念
- 查找:在数据结构中确定给定值是否存在,并返回其位置
- 查找表:静态查找表、动态查找表
2. 顺序查找法
- 逐个比较,适合无序表,时间复杂度 O(n)
3. 分块查找法
- 将表分为若干块,块内顺序查找,块间用索引,适合大表
4. 折半查找法(二分查找)
- 适合有序表,每次折半,时间复杂度 O(log n)
5. B 树及 B+树
- B 树:多路平衡查找树,适合磁盘存储
- B+树:所有关键字都在叶子节点,适合范围查找
6. 散列(哈希)表
- 散列函数、冲突处理(开放定址、链地址法)
- 查找效率高,接近 O(1)
7. 字符串模式匹配
- 朴素算法、KMP 算法等
8. 查找算法分析与应用
- 查找效率、空间复杂度、适用场景
练习题
- 简述顺序查找和折半查找的适用条件和效率。
- 分块查找的基本思想是什么?
- B 树和 B+树有何区别?
- 哈希表如何处理冲突?
- 字符串模式匹配常用算法有哪些?
参考答案
1. 顺序查找与折半查找
顺序查找适合无序表,O(n);折半查找适合有序表,O(log n)
2. 分块查找思想
分块+索引,先定位块再顺序查找,适合大表
3. B 树与 B+树区别
B 树关键字分布在所有节点,B+树只在叶子节点,B+树适合范围查找
4. 哈希冲突处理
开放定址法、链地址法等
5. 字符串匹配算法
朴素算法、KMP 算法等