給你256M的內存,對10G的文件進行排序(文件每行1個數字),如何實現? 對10G的文件進行查找如何實現?統計10G檔案每個關鍵字出現的次數如何實現
給你256M的內存,對10G的文件進行排序(文件每行1個數字),如何實現? 對10G的文件進行查找如何實現?統計10G檔案每個關鍵字出現的次數如何實現
用時間換空間唄
具體的實作都是分批載入檔案,然後計算
java嗎 用nio和用mapreduce的思想
不懂php
,但看這個題目似曾相識。
說說思路吧。
1、排序的實作
這是一個單機外部排序的典型題目。具體的方法就是先分塊進行排序
然後多路歸併
成輸出檔。
2、查找
如果不能對文件進行處理的話,只能遍歷進行查找。
如果是可以對文件進行處理的話,那麼上面已經排序好了文件,就可以進行二分查找
。
3、統計
如果不能對文件進行處理的話,還是沒有好的辦法,只能是遍歷一遍。
如果已經拍好序了,那麼就可以直接二分查找。在找到的位置向兩頭搜尋出現的個數。
可以看看《程式珠璣》這本書,好像就有這個問題。