原文:100億個數字找出最大的10個

首先一點,對於海量數據處理,思路基本上是確定的,必須分塊處理,然后再合並起來。 對於每一塊必須找出 個最大的數,因為第一塊中 個最大數中的最小的,可能比第二塊中 最大數中的最大的還要大。 分塊處理,再合並。也就是Google MapReduce 的基本思想。Google有很多的服務器,每個服務器又有很多的CPU,因此, 億個數分成 塊,每個服務器處理一塊, 億個數分成 塊,每個CPU處理一塊。然 ...

2014-03-02 15:58 2 13785 推薦指數:

查看詳情

如何給100個數字排序

轉自:http://netsmell.com/post/how-sort-10-billion-data.html?ref=myread 海量數據處理/外部歸並排序 - 分治.cppp 今天要給100個數字排序,100個 int 型數字放在文件里面大概有 37.2GB,非常大,內存 ...

Tue Oct 11 18:24:00 CST 2016 0 6089
面試題-10個數找出最大的10000個數(top K問題)

一個較好的方法:先拿出10000個建立小根堆,對於剩下的元素,如果大於堆頂元素的值,刪除堆頂元素,再進行插入操作,否則直接跳過,這樣知道所有元素遍歷完,堆中的10000個就是最大的10000個。時間復雜度: m + (n-1)logm = O(nlogm) 優化的方法:可以把所有10個數據分組 ...

Fri Mar 06 04:19:00 CST 2020 0 1808
利用最小堆找出10個數最大的10000個數

最小堆 最小堆是一種完全二叉樹,特點是根節點比兩個子節點都小(或者根節點比子節點都大) 過程 先找10000個數構建最小堆 依次遍歷10個數,如果比最小堆的最小值大,則替換這個最小值,並重新構建最小堆 最后輸入10000個值 時間復雜度 構建最小堆的復雜度為 logn ...

Tue May 01 18:53:00 CST 2018 0 2403
如何從100個數找出最大的前100個數

1. 算法如下:根據快速排序划分的思想 (1) 遞歸對所有數據分成[a,b)b(b,d]兩個區間,(b,d]區間內的數都是大於[a,b)區間內的數 (2) 對(b,d]重復(1)操作,直到最右邊的區間個數小於100個。注意[a,b)區間不用划分 (3) 返回上一個區間,並返回此區間的數字 ...

Mon Apr 02 08:12:00 CST 2018 0 1257
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM