“查找”学习提纲(三)——总结
| 名称 | 适用 | 时间复杂度 | 空间复杂度 |
|---|---|---|---|
| 顺序查找 | 线性表 | O(n) | O(1) |
| 折半查找 | 有序顺序表 | O(logn) | O(1) |
| 插值查找 | 有序顺序表 | O(logn) | O(1) |
| 斐波那契查找 | 有序顺序表 | O(logn) | O(m) |
| 稠密索引查找 | - | - | - |
| 分块查找 | 线性表 | O(logn)~O(n) | O(m) |
| 倒排索引查找 | - | - | - |
| 名称 | 适用 | 时间复杂度 | 空间复杂度 |
|---|---|---|---|
| 二叉排序树查找 | 动态表->二叉排序树 | O(logn)~O(n) | O(n) |
| 平衡二叉排序树查找 | 动态表->平衡二叉排序树 | O(logn) | O(n) |
| 红黑二叉排序树查找 | 动态表->红黑二叉排序树 | O(logn) | O(n) |
| B树查找 | 动态表->B树 | O(logn) | O(n) |
| B+树查找 | 动态表->B+树 | O(logn) | O(mlogn) | O(logmlogn) | O(n) |
折半查找:
二叉排序树查找:
| 名称 | 适用 | 时间复杂度 | 空间复杂度 |
|---|---|---|---|
| 散列查找 | 查找性能要求高,记录关系无要求 | O(1) | O(m) |
| 名称 | 适用 | 时间复杂度 | 空间复杂度 |
|---|---|---|---|
| 顺序查找 | 线性表 | O(n) | O(1) |
| 折半查找 | 有序顺序表 | O(logn) | O(1) |
| 插值查找 | 有序顺序表 | O(logn) | O(1) |
| 斐波那契查找 | 有序顺序表 | O(logn) | O(m) |
| 稠密索引查找 | - | - | - |
| 分块查找 | 线性表 | O(logn)~O(n) | O(m) |
| 倒排索引查找 | - | - | - |
| 二叉排序树查找 | 动态表->二叉排序树 | O(logn)~O(n) | O(n) |
| 平衡二叉排序树查找 | 动态表->平衡二叉排序树 | O(logn) | O(n) |
| 红黑二叉排序树查找 | 动态表->红黑二叉排序树 | O(logn) | O(n) |
| B树查找 | 动态表->B树 | O(logn) | O(n) |
| B+树查找 | 动态表->B+树 | O(logn) | O(mlogn) | O(logmlogn) | O(n) |
| 散列查找 | 查找性能要求高,记录关系无要求 | O(1) | O(m) |