3.5 应用
3.5.1 符号表的选择
- 散列表:对比BST,散列表代码简单,查找时间最优
 - BST:抽象结构简单,无需设计散列函数
 - 红黑树:可以保证最坏情况的性能
 - 一般情况下,不考虑有效操作,首先选择散列表,其次才是红黑树
 
符号表渐进性能总结
| 算法 | 最坏查找 | 最坏插入 | 平均查找命中 | 平均插入 | 
|---|---|---|---|---|
| 顺序查找(无序链表) | N | N | N/2 | N | 
| 二分查找(有序数组) | lgN | N | lgN | N/2 | 
| BST | N | N | 1.39lgN | 1.39lgN | 
| 红黑树 | 2lgN | 2lgN | 1.00lgN | 1.00lgN | 
| 拉链法 | <lgN | <lgN | N/(2M) | N/M | 
| 线性探测法 | clgN | clgN | <1.5 | <2.5 | 
3.5.1.3 Java标准库
Java的TreeMap和HashMap分别是基于红黑树和拉链法散列表的符号表
