面試題:從10G個數中找到中數
在一個文件中有 10G 個整數,亂序排列,要求找出中位數。(中間大小的數)
內存限制為 2G。
解法:
假設都是4字節的數 (更長的也一樣)
那么一共是32個位
按照前N位進行分組統計,
例如000000 2個
000001 100個
類推
那么可以找出中間的幾組數, 進一步分組就可以找到中間數
由于內存是2g 那么第一次分組前28位是最理想最快的情況
算法復雜度是O1
在一個文件中有 10G 個整數,亂序排列,要求找出中位數。(中間大小的數)
內存限制為 2G。
解法:
假設都是4字節的數 (更長的也一樣)
那么一共是32個位
按照前N位進行分組統計,
例如000000 2個
000001 100個
類推
那么可以找出中間的幾組數, 進一步分組就可以找到中間數
由于內存是2g 那么第一次分組前28位是最理想最快的情況
算法復雜度是O1