问题几乎说明了一切,但我正在构建一个编译器,并且我正在尝试决定使用哪种数据结构来表示我的符号表。考虑到符号表所需的唯一功能是搜索和插入,我想使用可以尽快完成这些操作的数据结构。有什么建议吗?
答案 0 :(得分:2)
Dictionary/Hashtable的查找速度为O(1)。
答案 1 :(得分:2)
Hash tables非常常用。使用N
二进制文件和一个哈希函数的简单实现,它取每个符号(mod N)中字母的总和,在插入和搜索时应该非常接近O(1)。
答案 2 :(得分:1)
关于哈希表查找 - 只有当没有或几个冲突发生时它才是O(1) - 所以假设你有适当的哈希函数,它通常是O(1),但在最坏的情况下它可能最终得到O(N) 。良好的数据大小估计至关重要。
您还应该考虑要使用的散列函数的时间复杂度