1. 符號表算法比較
| 算法 | 插入 | 查找 | 是否有序 |
|---|---|---|---|
| 鏈表實現的無序符號表 | N | N | yes |
| 二分查找實現的有序符號表 | N | logN | yes |
| 二叉查找樹 | logN | logN | yes |
| 2-3 查找樹 | logN | logN | yes |
| 拉鏈法實現的散列表 | N/M | N/M | no |
| 線性探測法實現的散列表 | 1 | 1 | no |
應當優先考慮散列表,當需要有序性操作時使用紅黑樹。
2. Java 的符號表實現
-
java.util.TreeMap:紅黑樹
-
java.util.HashMap:拉鏈法的散列表
| 算法 | 插入 | 查找 | 是否有序 |
|---|---|---|---|
| 鏈表實現的無序符號表 | N | N | yes |
| 二分查找實現的有序符號表 | N | logN | yes |
| 二叉查找樹 | logN | logN | yes |
| 2-3 查找樹 | logN | logN | yes |
| 拉鏈法實現的散列表 | N/M | N/M | no |
| 線性探測法實現的散列表 | 1 | 1 | no |
應當優先考慮散列表,當需要有序性操作時使用紅黑樹。
java.util.TreeMap:紅黑樹
java.util.HashMap:拉鏈法的散列表
本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。