auto commit
This commit is contained in:
parent
73d329c8a8
commit
979ab46db8
|
@ -1558,19 +1558,17 @@ private void resize(int cap) {
|
|||
}
|
||||
```
|
||||
|
||||
虽然每次重新调整数组都需要重新把每个键值对插入到散列表,但是从摊还分析的角度来看,所需要的代价却是很小的。从下图可以看出,每次数组长度加倍后,累计平均值都会增加 1,这是因为散列表中每个键都需要重新计算散列值。随后平均值会下降。
|
||||
|
||||
## 应用
|
||||
|
||||
### 1. 各种符号表实现的比较
|
||||
|
||||
| 算法 | 插入 | 查找 | 是否有序 |
|
||||
| :---: | :---: | :---: | :---: |
|
||||
| 二分查找实现的有序表 | logN | N | yes |
|
||||
| 二分查找实现的有序表 | N | logN | yes |
|
||||
| 二叉查找树 | logN | logN | yes |
|
||||
| 2-3 查找树 | logN | logN | yes |
|
||||
| 拉链法实现的散列表 | logN | N/M | no |
|
||||
| 线性探测法试下的删列表 | logN | 1 | no |
|
||||
| 拉链法实现的散列表 | N/M | N/M | no |
|
||||
| 线性探测法试下的散列表 | 1 | 1 | no |
|
||||
|
||||
应当优先考虑散列表,当需要有序性操作时使用红黑树。
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user