From aa14f8a6d56e5ced80a8b4855b508bb8d0e70f89 Mon Sep 17 00:00:00 2001 From: July <786165179@qq.com> Date: Sun, 8 Jun 2014 22:30:17 +0800 Subject: [PATCH] Update 03.01.md --- ebook/zh/03.01.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ebook/zh/03.01.md b/ebook/zh/03.01.md index 27da40e0a..bfdc8be08 100644 --- a/ebook/zh/03.01.md +++ b/ebook/zh/03.01.md @@ -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个词。 @@ -75,4 +75,4 @@ Trie树可以解决诸如词频统计一类的问题,如下述例子: 4、寻找热门查询 搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复读比较高,虽然总数是1千万,但是如果去除重复和,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。 -分析:利用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。 +提示:利用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。