Skip to content

Commit

Permalink
Update 03.01.md
Browse files Browse the repository at this point in the history
  • Loading branch information
julycoding committed Jun 8, 2014
1 parent 0662164 commit aa14f8a
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions ebook/zh/03.01.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Trie树可以解决诸如词频统计一类的问题,如下述例子:

1、一个文本文件,大约有一万行,每行一个词,要求统计出其中最频繁出现的前10个词,请给出思想,给出时间复杂度分析。

分析:用trie树统计每个词出现的次数,时间复杂度是O(n\*le)(le表示单词的平均长度),然后是找出出现最频繁的前10个词。也可以用堆来实现(具体的操作可参考第三章、寻找最小的k个数),时间复杂度是O(n\*lg10)。所以总的时间复杂度,是O(n\*le)与O(n\*lg10)中较大的哪一个。
提示:用trie树统计每个词出现的次数,时间复杂度是O(n\*le)(le表示单词的平均长度),然后是找出出现最频繁的前10个词。也可以用堆来实现(具体的操作可参考第三章、寻找最小的k个数),时间复杂度是O(n\*lg10)。所以总的时间复杂度,是O(n\*le)与O(n\*lg10)中较大的哪一个。

2、一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。

Expand All @@ -75,4 +75,4 @@ Trie树可以解决诸如词频统计一类的问题,如下述例子:
4、寻找热门查询
搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复读比较高,虽然总数是1千万,但是如果去除重复和,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。

分析:利用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。
提示:利用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。

0 comments on commit aa14f8a

Please sign in to comment.