算法——海量数据(5%)
1,有一個很大很大的輸入流,大到沒有存儲器可以將其存儲下來,
而且只輸入一次,如何從這個輸入流中隨機取得
m個記錄。
2,大量的URL字符串,如何從中去除重復的,優化時間空間復雜度
3,?設計一個系統處理詞語搭配問題,比如說中國和人民可以搭配,
則中國人民人民中國都有效。要求:
*系統每秒的查詢數量可能上千次;
*詞語的數量級為10W;
*每個詞至多可以與1W個詞搭配
當用戶輸入中國人民的時候,要求返回與這個搭配詞組相關的信息。
?4,?有一千萬條短信,有重復,以文本文件的形式保存,一行一條,有重復。
請用5分鐘時間,找出重復出現最多的前10條。
5,?大整數數相乘的問題。
6,一個url指向的頁面里面有另一個url,最終有一個url指向之前出現過的url或空,這兩種情形都定義為null。這樣構成一個單鏈表。給兩條這樣單鏈表,判斷里面是否存在同樣的url。url以億級計,資源不足以hash。
7,搜索引擎中5億個url怎么高效存儲
8,有幾百億的整數,分布的存儲到幾百臺通過網絡連接的計算機上,你能否開發出一個算法和系統,找出這幾百億數據的中值?就是在一組排序好的數據中居于中間的數。顯然,一臺機器是裝不下所有的數據。也盡量少用網絡帶寬。
9,10億個int型整數,如何找出重復出現的數字
10,有2G的一個文本文檔,文件每行存儲的是一個句子,每個單詞是用空格隔開的。問:輸入一個句子,如何找到和它最相似的前10個句子。
11,優酷是一家視頻網站,每天有上億的視頻被觀看,現在公司要請研發人員找出最熱門的視頻。?
該問題的輸入可以簡化為一個字符串文件,每一行都表示一個視頻id,然后要找出出現次數最多的前100個視頻id,將其輸出,同時輸出該視頻的出現次數。?
1.假設每天的視頻播放次數為3億次,被觀看的視頻數量為一百萬個,每個視頻ID的長度為20字節,限定使用的內存為1G。請簡述做法,再寫代碼。?
2.假設每個月的視頻播放次數為100億次,被觀看的視頻數量為1億,每個視頻ID的長度為20字節,一臺機器被限定使用的內存為1G。?
12,分布式系統設計
有1000億個URL,其中大約有5億個site。每天的更新大約2%-5%。設計一個系統來解決存儲和計算下面三個問題。可用分布式系統。
URL:http///site[port]*(key==?;key==?)
site:[*].domain
? URL:http://www.baidu.com/baidu?word=%E5%AE%A3%E8%AE%B2%E4%BC%9A&ie=utf-8
? site::www.baidu.com
domain::baidu.com
key=baidu?word
? ? a>檢測每個域名下的site數目,以及每個site下的URL數目,輸出site變化超過一定閾值的域名以及URL數目變化劇烈的site。找出泛域。
泛域:該域下的site數目超過500個,且每個site下的URL數目超過100個。
? ? b>提取URL中key的特征,對site進行聚類;
(每個site下面有多個URL,這些URL中有許多key,可以獲取這些key作為site的特征,對site進行聚類,不過這應該是多機器聯合的)
? ? c>對于給定的domain,輸出該domain下的所有site。?
13,海量數據中,尋找最小的k個數
14,假設一個大小為100億個數據的數組,該數組是從小到大排好序的,現在該數組分成若干段,每個段的數據長度小于20「也就是說:題目并沒有說每段數據的size 相同,只是說每個段的 size < 20 而已」,然后將每段的數據進行亂序(即:段內數據亂序),形成一個新數組。請寫一個算法,將所有數據從小到大進行排序,并說明時間復雜度。
?
?
轉載于:https://www.cnblogs.com/msfte/archive/2012/12/18/2823365.html
總結
以上是生活随笔為你收集整理的算法——海量数据(5%)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#实现窗口最小化到系统托盘
- 下一篇: 论文(一)