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

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精品国产亚洲性色| 国产精自产拍久久久久久蜜| 黑丝一区二区三区| 在线亚洲国产精品网站| 久久免费视频在线观看| 日韩午夜高潮| 久久综合99re88久久爱| 欧美四级在线观看| 亚洲国产精品久久久久秋霞影院 | 欧美成人精品在线视频| 亚洲美女视频| 久久一区欧美| 国产在线视频欧美| 亚洲一区二区在线观看视频| 欧美不卡在线视频| 欧美一级成年大片在线观看| 国产精品成人观看视频国产奇米| 亚洲福利视频网站| 久久久久久免费| 亚洲免费在线观看视频| 欧美日韩1234| 亚洲人成久久| 欧美黄色aa电影| 久久成人18免费网站| 国产精品萝li| 亚洲男女自偷自拍图片另类| 亚洲经典三级| 欧美二区不卡| 亚洲另类一区二区| 亚洲风情亚aⅴ在线发布| 免费视频一区二区三区在线观看| 国内久久精品视频| 久久久久久色| 久久漫画官网| 亚洲国产精品123| 欧美高清视频免费观看| 麻豆精品在线观看| 亚洲国产高清在线| 亚洲国产精品久久精品怡红院| 久久久久久久999| 黄色成人在线网址| 欧美成人三级在线| 欧美 日韩 国产 一区| 亚洲日本一区二区| 99精品国产高清一区二区| 欧美视频日韩| 性色av一区二区怡红| 性色一区二区| 国产亚洲一区二区三区在线观看 | 亚洲精品少妇| 欧美日在线观看| 欧美一区二区三区免费观看视频| 午夜久久资源| 尤妮丝一区二区裸体视频| 男人的天堂亚洲在线| 欧美不卡三区| 亚洲欧美一区二区原创| 午夜视频久久久久久| 欧美福利小视频| 在线亚洲激情| 国产一区二区三区在线观看精品| 久久久蜜臀国产一区二区| 久久夜色精品国产欧美乱| 一本色道久久综合亚洲精品小说 | 久久精品人人做人人爽电影蜜月| 1024欧美极品| 99热这里只有精品8| 国产欧美精品日韩精品| 欧美成年人在线观看| 欧美视频一区二区三区在线观看| 久久精品一区二区三区四区| 欧美a级一区二区| 午夜欧美精品| 欧美极品aⅴ影院| 久久se精品一区二区| 欧美黑人多人双交| 久久久久www| 欧美丝袜一区二区三区| 欧美电影专区| 国产亚洲激情在线| 一区二区欧美国产| 亚洲黄色小视频| 小处雏高清一区二区三区 | 黄色成人av网站| 亚洲视频中文| 亚洲免费成人| 免费看黄裸体一级大秀欧美| 欧美一区高清| 欧美午夜精彩| 亚洲茄子视频| 在线观看一区视频| 亚洲欧美日韩精品在线| 一区二区日韩欧美| 欧美大片网址| 欧美激情影院| 1024国产精品| 久久综合九色综合久99| 久久精品国产亚洲一区二区| 国产精品麻豆欧美日韩ww| 99精品视频免费在线观看| 亚洲精品日韩久久| 美女日韩欧美| 欧美成人首页| 伊人色综合久久天天五月婷| 欧美一区二区在线免费播放| 亚洲免费视频成人| 欧美性猛交视频| 一个色综合导航| 亚洲一区二区三| 国产精品igao视频网网址不卡日韩 | 久久久欧美精品sm网站| 欧美在线1区| 国产农村妇女精品一区二区| 亚洲综合视频1区| 先锋资源久久| 国产欧美一区二区三区视频| 91久久黄色| 欧美精彩视频一区二区三区| 久久av在线看| 国内精品久久久久久| 欧美影院视频| 麻豆成人91精品二区三区| 亚洲第一区色| 欧美日韩亚洲高清一区二区| 亚洲性视频网址| 久久精品亚洲精品| 精品69视频一区二区三区| 久久一区二区三区超碰国产精品| 欧美激情一区二区久久久| 日韩一级片网址| 国产精品白丝jk黑袜喷水| 亚洲欧美日韩国产| 久久先锋资源| 日韩一级精品| 国产亚洲免费的视频看| 久久久久久亚洲精品不卡4k岛国| 亚洲国产另类久久久精品极度| 一区二区三区精品国产| 国产精品一区二区三区四区| 久久激情婷婷| 日韩亚洲国产欧美| 久久婷婷蜜乳一本欲蜜臀| 日韩午夜电影在线观看| 国产精品一区亚洲| 另类成人小视频在线| 一区二区三区日韩精品| 老司机午夜精品视频在线观看| 亚洲看片免费| 今天的高清视频免费播放成人 | 韩国精品主播一区二区在线观看| 免费中文字幕日韩欧美| 亚洲最新视频在线播放| 久久免费精品视频| 亚洲视频一起| 在线观看精品| 国产伦精品一区二区三区四区免费| 久久免费黄色| 先锋影音国产一区| 夜夜精品视频| 亚洲电影一级黄| 久久久夜色精品亚洲| 亚洲——在线| 99riav1国产精品视频| 精品福利av| 国产视频久久网| 国产精品日日做人人爱| 欧美日韩91| 欧美激情一区二区三区全黄| 欧美一区二区免费观在线| 99视频有精品| 99在线观看免费视频精品观看| 欧美成年人网站| 麻豆9191精品国产| 欧美中文字幕视频在线观看|