二分查找最壞查找次數(shù) 海量數(shù)據(jù)算法:如何從超過(guò)10G的記錄IP地址的日志中,較快的找出登錄次數(shù)最多的一個(gè)IP?
海量數(shù)據(jù)算法:如何從超過(guò)10G的記錄IP地址的日志中,較快的找出登錄次數(shù)最多的一個(gè)IP?答案太復(fù)雜了。如果仔細(xì)計(jì)算,IP地址是4字節(jié),最多是4G。打開(kāi)16GB陣列。每個(gè)IP的32位索引由4個(gè)字節(jié)組成,
海量數(shù)據(jù)算法:如何從超過(guò)10G的記錄IP地址的日志中,較快的找出登錄次數(shù)最多的一個(gè)IP?
答案太復(fù)雜了。如果仔細(xì)計(jì)算,IP地址是4字節(jié),最多是4G。打開(kāi)16GB陣列。每個(gè)IP的32位索引由4個(gè)字節(jié)組成,是數(shù)組的索引。數(shù)組中的每個(gè)元素都是32位整數(shù),它記錄并自動(dòng)增加與索引對(duì)應(yīng)的IP出現(xiàn)次數(shù)。通過(guò)這種方式,您可以讀取10GB日志并找出誰(shuí)是最大的。你不用教我怎么找到最大的,是嗎?
這樣,如果磁盤(pán)足夠快,數(shù)據(jù)應(yīng)該在30秒內(nèi)發(fā)送出去。