【问题标题】:BST or hash table dictionary for a spelling checker拼写检查器的 BST 或哈希表字典
【发布时间】:2016-12-15 00:27:27
【问题描述】:

如果我要实现文字处理器的拼写检查器,哪种实现效率更高?字典需要频繁的检索和偶尔的插入。由于没有字典项的最大数量,BST 将是更好的选择。但它也需要频繁的检索,并且哈希表具有更快的搜索操作时间。在这种情况下,更好的答案是什么?

【问题讨论】:

  • 您是打算让这个拼写检查器实际提供更正,还是只为每个单词返回一个已知词/未知词标志?
  • 问题中没有指定...我想如果您需要提供更正,则需要支持快速有序遍历操作,因此 BST 将是最佳选择。跨度>
  • 我知道不是,这就是我问的原因。如果没有更正,它似乎是一个非常无用的拼写检查器。您实际上是在制作拼写检查器,还是这个问题只是学术问题?另外,你读过这个吗:norvig.com/spell-correct.html

标签: dictionary hash binary-search-tree


【解决方案1】:

由于没有最大字典项数,BST 会是更好的选择。

IMO,使用 BST 实现字典不是一个好主意。特里是您的正确选择。

您可以在此处找到 hashtable 和 trie 之间的比较:How Do I Choose Between a Hash Table and a Trie (Prefix Tree)?

【讨论】:

    猜你喜欢
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2011-12-14
    相关资源
    最近更新 更多