青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 183,  comments - 10,  trackbacks - 0

搜索引擎會通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1-255字節。
假設目前有一千萬個記錄(這些查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復后,不超過3百萬個。一個查詢串的重復度越高,說明查詢它的用戶越多,也就是越熱門。請你統計最熱門的10個查詢串,要求使用的內存不能超過1G。


先統計所有查詢的次數,所有查詢有 300 萬個,255 * 300 * 10000B = 765 MB,可以存入內存。這里使用 STL 中的 map。所得時間復雜度為 O(NlogM),N 為所有的查詢,包括重復的,M 為不重復的查詢。更好的方法是用散列。

然后遍歷 map,維護一個大小為 10 的集合,在遍歷 map 時,比較當前查詢的出現次數與集合中出現次數最小的查詢的出現此時比較,如果大于,將當前查詢替換到集合中。
這里的集合還是用的 map,時間復雜度為 O(MlogK),這里 K = 10。

總的時間復雜度為 O(NlogM) + O(MlogK)


也可以將這個過程合二為一。即每次在統計的過程中,查詢大小為 K 的集合。如果符合條件,則將當前查詢替換到集合中。但是還要考慮實時更新集合中的元素。
這種方法的時間復雜度為 O(N(logM + logK + K))。

由于第二種方法還得考慮實時更新。效率遠沒有第一種方案高。

實現:

 1 #include <iostream>
 2 #include <fstream>
 3 #include <map>
 4 #include <string>
 5 using namespace std;
 6 
 7 void statistics(map<stringint>& data, const string& query)
 8 {
 9     ++data[query];
10 }
11 
12 void findTopK(multimap<intstring>& topK, int k, const map<stringint>& data)
13 {
14     topK.clear();
15     for (map<stringint>::const_iterator cit = data.begin(); cit != data.end(); ++cit)
16     {
17         if (topK.size() < k)
18         {
19             topK.insert(make_pair(cit->second, cit->first));
20         }
21         else
22         {
23             if (cit->second > topK.begin()->first)
24             {
25                 topK.erase(topK.begin());
26                 topK.insert(make_pair(cit->second, cit->first));
27             }
28         }
29     }
30 }
31 
32 int main()
33 {
34     ifstream fin("queryfile.txt");
35     map<stringint> data;
36     multimap<intstring> top10;
37     string query;
38     while (getline(fin, query))
39     {
40         statistics(data, query);
41     }
42 
43     //for (map<string, int>::const_iterator cit = data.begin(); cit != data.end(); ++cit)
44     //{
45     //    cout << cit->first << '\t' << cit->second << endl;
46     //}
47 
48     //cout << endl;
49     findTopK(top10, 10, data);
50 
51     for (multimap<intstring>::const_reverse_iterator cit = top10.rbegin(); cit != top10.rend(); ++cit)
52     {
53         cout << cit->second << '\t' << cit->first << endl;
54     }
55 
56     return 0;
57 }

http://blog.donews.com/jiji262/2011/03/baidu_top_k_interview/
http://blog.redfox66.com/post/2010/09/23/top-k-algoriyhm-analysis.aspx
http://blog.csdn.net/jasonblog/archive/2010/08/19/5825026.aspx
posted on 2011-04-30 18:06 unixfy 閱讀(210) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲人成在线观看| 久久欧美肥婆一二区| 欧美日韩国产另类不卡| 免费在线观看精品| 欧美第十八页| 欧美色精品天天在线观看视频| 欧美视频导航| 国产欧美精品久久| 激情伊人五月天久久综合| 亚洲第一精品久久忘忧草社区| 亚洲国产欧美精品| 日韩视频一区二区在线观看 | 久久久久国色av免费看影院| 欧美在线不卡| 欧美经典一区二区| 国产欧美日韩激情| 亚洲第一精品夜夜躁人人躁| 亚洲视频免费观看| 欧美在线你懂的| 欧美激情精品久久久六区热门 | 99精品99| 久久国产精品99国产精| 欧美成人精品一区二区| 欧美日韩中文精品| 韩国av一区二区| 中国日韩欧美久久久久久久久| 欧美在线免费观看| 亚洲卡通欧美制服中文| 欧美伊人精品成人久久综合97| 欧美成人免费观看| 国产欧美一区二区色老头| 亚洲精品1区| 欧美一区二区三区在线| 亚洲福利久久| 欧美一区二区精品在线| 欧美另类变人与禽xxxxx| 国产又爽又黄的激情精品视频| 亚洲美女在线视频| 玖玖视频精品| 午夜在线不卡| 国产精品毛片| 99视频在线精品国自产拍免费观看| 久久精品国产99精品国产亚洲性色| 亚洲国产成人tv| 欧美在线观看视频在线 | 韩国精品久久久999| 中文一区在线| 欧美国产一区在线| 亚洲第一二三四五区| 久久国产加勒比精品无码| 91久久午夜| 免费亚洲电影在线观看| 黄色成人av| 久久男女视频| 久久精品在线| 激情五月婷婷综合| 久久精品国产一区二区电影| 亚洲少妇自拍| 国产精品久久久久久久久搜平片 | 亚洲电影下载| 久久国产精品久久久久久| 9久草视频在线视频精品| 欧美国产日韩免费| 亚洲精品日韩欧美| 亚洲国产电影| 欧美精品少妇一区二区三区| 亚洲每日更新| 99热这里只有成人精品国产| 欧美日韩亚洲一区二区| 亚洲一区二区三区涩| 亚洲影院一区| 精品88久久久久88久久久| 蜜臀久久99精品久久久画质超高清| 午夜精品视频网站| 红桃视频国产一区| 亚洲成色777777女色窝| 欧美激情第3页| 亚洲一级网站| 欧美伊人久久久久久午夜久久久久 | 亚洲国产精品va在线看黑人动漫 | 午夜激情久久久| 国产深夜精品| 欧美www视频| 欧美巨乳在线观看| 午夜精品999| 久久最新视频| 亚洲午夜电影在线观看| 性欧美18~19sex高清播放| 在线观看亚洲视频啊啊啊啊| 亚洲黄色成人| 国产欧美在线视频| 亚洲国产成人在线播放| 欧美福利视频| 欧美精品综合| 欧美一级久久久久久久大片| 久久不见久久见免费视频1| 亚洲欧洲在线观看| 一本色道久久综合亚洲精品不| 亚洲精品午夜| 精品电影在线观看| 欧美日韩三级视频| 久久精品男女| 欧美精品久久99| 久久国产精品99久久久久久老狼| 欧美成人第一页| 久久精品国产69国产精品亚洲| 欧美二区在线看| 久久久久网站| 国产精品久久久久久一区二区三区 | 日韩天堂在线视频| 国产亚洲一级高清| 亚洲伦理在线| 亚洲国产精品电影| 午夜国产精品视频免费体验区| 亚洲人成在线观看一区二区| 香蕉久久夜色精品国产使用方法| 一个色综合av| 免费日韩精品中文字幕视频在线| 欧美在线啊v一区| 欧美日韩日本国产亚洲在线| 男同欧美伦乱| 国内精品视频在线观看| 一区二区久久| 一区二区不卡在线视频 午夜欧美不卡'| 欧美在线亚洲| 久久人人爽爽爽人久久久| 国产精品影片在线观看| 亚洲美洲欧洲综合国产一区| 91久久精品美女| 久久综合网色—综合色88| 久久精品中文| 国产精品美女久久久久久2018| 亚洲国产精品精华液网站| 尤物精品在线| 久久精品综合一区| 久久久亚洲人| 伊人久久综合| 久久婷婷人人澡人人喊人人爽| 欧美专区中文字幕| 国产九色精品成人porny| 亚洲一区在线观看视频| 亚洲小视频在线观看| 欧美日韩和欧美的一区二区| 亚洲日本电影在线| 亚洲午夜精品一区二区| 欧美日韩成人综合在线一区二区 | 久久精品女人| 蜜臀a∨国产成人精品| 在线精品视频一区二区| 欧美.日韩.国产.一区.二区| 亚洲国产精品激情在线观看| 99在线视频精品| 欧美视频在线观看| 亚洲专区在线视频| 久久久噜久噜久久综合| 亚洲国产精品第一区二区三区| 免费亚洲视频| 99热精品在线观看| 久久国产精品久久国产精品| 伊人一区二区三区久久精品| 亚洲尤物视频网| 亚洲网站视频福利| 亚洲欧美另类在线| 国产一区二区三区精品欧美日韩一区二区三区 | 久久综合色一综合色88| 免费在线欧美视频| 一区二区三区|亚洲午夜| 国产精品乱码人人做人人爱| 欧美在线短视频| 日韩亚洲欧美成人| 久久狠狠婷婷| 亚洲欧洲日本在线| 国产精品狼人久久影院观看方式| 欧美一区国产一区| 亚洲日本久久| 久久欧美中文字幕| 亚洲影院高清在线| 在线观看视频一区| 国产精品高潮呻吟久久av无限 | 亚洲精品一区在线| 国产精品女人网站| 欧美成人精品激情在线观看 | 亚洲免费精品| 麻豆精品视频在线| 亚洲欧美第一页| 亚洲欧洲午夜| 狠狠干狠狠久久| 国产精品久久久一本精品| 免费欧美视频| 欧美在线视频播放| 国产精品99久久久久久久vr| 女女同性精品视频| 欧美在线高清| 亚洲资源在线观看| 亚洲看片免费| 亚洲国产精品一区二区第四页av| 国产欧美精品一区aⅴ影院| 欧美日韩国产一中文字不卡| 玖玖在线精品| 欧美一区亚洲二区|