这个问题几乎说明了这一切,但我正在构建一个编译器,并试图决定用于我的符号表的什么样的数据结构。考虑到符号表所需的唯一功能是搜索和插入,我希望使用可以尽快完成这些操作的数据结构。有什么建议么?什么样的数据结构能够以最快的速度进行搜索和插入功能?
2
A
回答
2
Hash tables非常常用于此。使用N
分箱和采用每个符号中的字母总和(模N)的散列函数的简单实现在插入和搜索时应该非常接近O(1)。
2
Dictionary/Hashtable如果我没有弄错,查找速度为O(1)。
1
关于散列表查找 - 只有在没有或几个冲突发生时才是O(1) - 所以假设您有适当的散列函数,它通常是O(1),但在最糟糕的情况下,它可能会以O(N )。对数据大小的良好估计至关重要。
而且你还要考虑时间,你打算使用
相关问题
- 1. 什么是快速字典搜索的最佳数据结构?
- 2. 快速插入和过滤的最佳数据结构
- 3. 快速随机访问,搜索,插入和删除的高效数据结构
- 4. 快速搜索和小尺寸搜索数据结构
- 5. 为什么Facebook上的智能搜索速度如此之快
- 6. 快速制作Javascript搜索功能
- 7. 其数据结构对象的快速查找功能列表
- 8. 用于并行搜索的最快的.net数据结构
- 9. 使用通配符进行快速搜索的表数据结构
- 10. 最有效的数据结构:快速排序插入,最接近的值搜索
- 11. 用于插入和搜索的功能结构的不错选择 -
- 12. 什么是快速插入SQL数据和相关行的最佳方式?
- 13. 以更快的速度运行插入数据库任务
- 14. 哪些功能运行速度更快?
- 15. 最近的搜索功能
- 16. 关于什么样的数据结构用于快速搜索时间的建议C++
- 17. 线段搜索的最佳数据结构是什么?
- 18. F#中查询速度最快的数据结构?
- 19. 我能够以多快的速度抓取一个网站?
- 20. 数据库搜索功能
- 21. 速度快的强大功能SURF
- 22. 搜索栏能够用逗号进行搜索-mySQL/php
- 23. 如何实现带编辑文本的快速搜索功能
- 24. Xcode的快速搜索功能在哪里?
- 25. 数据结构索引整个文档和算法进行快速搜索任何规模大小子
- 26. 为什么AS3中的定时器功能不够快速地更新0.05秒?
- 27. 什么类型的数据结构可以有效地搜索进程表
- 28. 什么是合理数量的行和表能够加入MySQL?
- 29. 每个Python数据结构的功能是什么?
- 30. 使用搜索功能进行筛选
散列函数你的建议是很坏的哈希函数的复杂性,它使所有字谜碰撞。系统散列函数会更好(如果OP最喜欢的语言中有一个)。 – 2010-02-21 23:01:33
我将不得不找出一个更好的散列函数来使用,但散列表似乎是符号表的方式。 – adhanlon 2010-02-21 23:04:57
任何人都知道标准模板库的SET容器如何以符号表的形式执行? – adhanlon 2010-02-21 23:14:37