<ul>
<li><strong>如果你的字典可以放入内存,那么可以使用一个简单的哈希表。</strong></li>
</ul>
<p>尝试在哈希表中插入每个键值。
如果在插入之前密钥已经存在,那么您已经发现了一个重复项。
在许多语言中,<a href="http://en.wikipedia.org/wiki/Hash_table" rel="nofollow noreferrer">hashtable</a>有许多实现。在</p>
<p>基本上有两种方法:数组和树。在</p>
<ul>
<li><p><a href="http://en.wikipedia.org/wiki/Hash_table" rel="nofollow noreferrer">Array</a>在高内存开销下关注速度。哈希表实现的主要区别是在unicity上的行为,有些实现强制unicity,有些实现强制unicity。</p></li>
<li><p>树集中在以O(log(n))cpu使用为代价的内存智能使用。g++映射依赖于非常强大的<a href="http://en.wikipedia.org/wiki/Red_black_tree" rel="nofollow noreferrer">red black tree</a>。</p></li>
</ul>
<p>如果大小是非常有问题的,那么您应该搜索<a href="http://en.wikipedia.org/wiki/Huffman_coding" rel="nofollow noreferrer">Huffman</a>压缩和/或<a href="http://en.wikipedia.org/wiki/LZ77_and_LZ78" rel="nofollow noreferrer">Lampel Ziv</a>压缩,但它的成本要高一点,以适应词典。在</p>
<ul>
<li><strong>如果你的单词记不住了</strong></li>
</ul>
<p>你应该看看数据库。
数据库的红黑树被称为<a href="http://en.wikipedia.org/wiki/Btree" rel="nofollow noreferrer">BTree</a>(几乎)。它有针对低延迟硬盘驱动器情况的分支因子优化。在</p>
<p>我在维基百科上放了很多链接,但是如果你喜欢这个主题,我建议你:</p>
<p><img src="https://i.stack.imgur.com/fV7eB.png" alt="Introduction to algorithms"/></p>