7

我有一本由单词及其音标组成的字典。单词都是小写的,所以不涉及区分大小写的搜索。

词典非常庞大,我需要在我的应用程序启动时快速加载它。我宁愿阅读它而不必单独阅读每个条目。

我想我存储和加载它的方式也会影响我将词典保存在内存中的方式

谢谢你的任何想法。

4

2 回答 2

4

您可能希望将其存储为Trie

这是存储字典的有效方式。查看以下答案以获取更多信息

http://en.wikipedia.org/wiki/Trie

https://stackoverflow.com/questions/296618/what-is-the-most-common-use-of-the-trie-data-structure

将文件持久化 - C

于 2013-05-21T15:40:10.933 回答
4

我想到了几个选项:

  1. 您可以使用用于将文件映射到内存的sqlitemmap来存储词典,以便仅读取访问的内容。这可能是合理的快速和可靠的,也是最容易实现的。
  2. 你可以mmap自己存档
  3. 使用seek操作在文件中移动文件指针而不读取整个文件。这只会在词典以某种方式结构化时才有帮助,这样您就可以在不阅读所有内容的情况下找到正确的位置,即它必须是一个允许比 O(n) 搜索更好的数据结构(Trie 通常是一个不错的选择,因为萨尔加建议)。
于 2013-05-21T16:48:23.907 回答