【发布时间】:2016-01-23 01:52:31
【问题描述】:
假设我在内存中有一整本书(或两本书),我想计算其中唯一单词的数量,我该如何计算?我对小字符串的天真方法是:
create a simple hash, place it in array of fixed size, increment array element
All words for which hash array has 1 in it, are unique.
我想要一个更好的方法来处理我真的很长的字符串。我正在用 C 编码。我认为一种方法是使用以块形式工作并组合结果的工作线程。有没有更好的算法?
【问题讨论】:
-
使用 Hadoop! wiki.apache.org/hadoop/WordCount
-
你能展示你目前所拥有的代码吗?如果您提出具体问题而不是一般性和开放式的问题,您将更有可能得到答案?
-
多线程只有在您有多个可用处理器并且使算法显着复杂时才会有所帮助。但是,无论您如何分解它,都需要一段代码来检查每个单词。您简单直接的方法似乎很合理,但我不会使用固定大小的数组,因为您可能会用完空间。
-
很确定这是trie 被发明来解决的问题。