算法 – 给定一个文件,尽可能高效地找到十个最常发生的单词

这显然是一个采访问题(在采访问题的集合中发现),但即使不是很酷。

我们被告知要在所有复杂措施上有效地做到这一点。我想到创建一个将字词映射到频率的HashMap。那么O(n)在时间和空间上是复杂的,但是由于可能会有很多的话,我们不能假设我们可以将所有内容存储在内存中。

我必须补充说,问题中没有提到这些单词不能存储在内存中,但如果是这样的话呢?如果不是这样,那么这个问题似乎并不具有挑战性。

优化我自己的时间:

sort file | uniq -c | sort -nr | head -10

可能之后是awk'{print $ 2}’以消除计数。

http://stackoverflow.com/questions/4495241/given-a-file-find-the-ten-most-frequently-occuring-words-as-efficiently-as-poss

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:算法 – 给定一个文件,尽可能高效地找到十个最常发生的单词