只有2GB内存在20亿个整数中找到出现次数最多的数
生活随笔
收集整理的這篇文章主要介紹了
只有2GB内存在20亿个整数中找到出现次数最多的数
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目:有一個(gè)包含20億個(gè)全是32位整數(shù)的大文件,在其中找到出現(xiàn)次數(shù)最多的數(shù)
要求:內(nèi)存限制2GB
解決辦法:把包含20億個(gè)數(shù)的大文件用哈希函數(shù)分成16個(gè)小文件,根據(jù)哈希函數(shù)的性質(zhì),同一種數(shù)不可能被散列到不同的小文件上,同時(shí)每個(gè)小文件中不同的數(shù)一定不會(huì)大于2億種,假設(shè)哈希函數(shù)足夠優(yōu)秀,然后對每一個(gè)小文件用哈希表來統(tǒng)計(jì)其中每種出現(xiàn)的次數(shù),這樣我們就可以得到16個(gè)小文件中各自出現(xiàn)次數(shù)最多的數(shù),還有各自的次數(shù)統(tǒng)計(jì),接下來選出16個(gè)小文件各自的第一名中誰出現(xiàn)的次數(shù)最多即可
?
總結(jié)
以上是生活随笔為你收集整理的只有2GB内存在20亿个整数中找到出现次数最多的数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 认识布隆过滤器
- 下一篇: 认识哈希函数(散列函数)