查找具有最大出现次数的单词

时间:2011-09-24 16:40:16

标签: algorithm find

搜索文档中出现次数最多的单词的最佳方式(算法)是什么?

2 个答案:

答案 0 :(得分:2)

  1. 扫描文档一次,记录您查看每个唯一单词的次数(可能使用散列表或树来执行此操作)。
  2. 执行第1步时,请跟踪到目前为止所有单词数量最多的单词。

答案 1 :(得分:2)

查找文档中大多数时间出现的单词可以通过简单的histogram [基于哈希]在O(n)中完成:

histogram <- new map<String,int>
for each word in document: 
   if word in histogram:
      histogram[word] <- histogram[word] + 1
   else:
      histogram[word] <- 1
max <- 0
maxWord<- ""
for each word in histogram:
  if histogram[word] > max:
     max <- histogram[word]
     maxWord <- word
return maxWord

这是O(n)解决方案,由于问题显然是Omega(n)问题,因此在big O notation方面是最优的。