只有2GB內存在20億個整數中找到出現次數最多的數

2021-09-24 22:51:57 字數 254 閱讀 9793

題目:有乙個包含20億個全是32位整數的大檔案,在其中找到出現次數最多的數

要求:記憶體限制2gb

解決辦法:把包含20億個數的大檔案用雜湊函式分成16個小檔案,根據雜湊函式的性質,同一種數不可能被雜湊到不同的小檔案上,同時每個小檔案中不同的數一定不會大於2億種,假設雜湊函式足夠優秀,然後對每乙個小檔案用雜湊表來統計其中每種出現的次數,這樣我們就可以得到16個小檔案中各自出現次數最多的數,還有各自的次數統計,接下來選出16個小檔案各自的第一名中誰出現的次數最多即可

Linux C操作超過2GB大小的檔案

使用普通的open lseek操作檔案,當檔案達到2gb的時候寫資料就會失敗。這也是顯然的,lseek的原型是 long lseek int handle,long offset,int fromwhere long在32位作業系統上只有4個位元組,只能定址正負2gb的資料。lseek64是用於讀寫...

用2GB 處理21億的資料的排序

本文的的寫作是在csdn 看到了 漫畫 面試官讓我用 2gb 記憶體給 20億個整數 需要8gb記憶體 排序,我該咋整?這麼一篇文章,這篇文章說的外部排序的方法。但是,基於愛研究的精神,考慮有沒有一種方法比外部排序更快。c 的bitset,但此處並未使用bitset 因為不熟悉。點陣圖每一位占用1b...

中國首個5G基站在廣州開通!網速穩定2Gbps

高畫質 移動辦公 物聯網等都對通訊速度提出了新的要求,5g呈現山雨欲來的態勢。據 報道,昨日在廣州大學城,中國首個5g基站正式開通。所謂中國首個是指,該基站基於5g新空口協議,在外場測試中尚屬首次。報道稱,基站屬廣東移動聯合裝置商聯合建設,是為迎接即將到來的2017年世界移動大會。下一部還將在大學城...