java異或 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因?yàn)檫@是一個(gè)Java問題,所以這是典型的TOPK問題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因?yàn)檫@是一個(gè)Java問題,所以這是典型的TOPK問題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最后100個(gè)元素就是結(jié)果??臻g復(fù)雜度是k,時(shí)間復(fù)雜度是nlogk
格里斯數(shù)有多大?例如,如果宇宙中每一個(gè)物質(zhì)和非物質(zhì)的原子,在我們談?wù)撚钪鏆绲臅r(shí)候,從宇宙誕生之日起,就一直在說1000000000,然后在這些零之前加一個(gè)1,這個(gè)數(shù)字夠大嗎?假設(shè)這個(gè)數(shù)是a,那么,自從宇宙誕生以來,宇宙中所有的物質(zhì)原子和非物質(zhì)原子都同時(shí)在說aaaaa,我們一直在談?wù)撚钪娴臍?,然后我們把這些x乘以,得到一個(gè)數(shù)B,我們?nèi)匀辉谡務(wù)撚钪嬷械拿恳粋€(gè)物質(zhì)原子和非物質(zhì)原子,我們一直在談?wù)揵bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,所有的26個(gè)字母都被重復(fù)了100億次,最后我們得到一個(gè)足夠大的數(shù)字?還沒結(jié)束呢。宇宙中的每一個(gè)物質(zhì)原子和非物質(zhì)原子都在說∥自從宇宙誕生以來就一直在說宇宙的毀滅,然后把這一切∥相乘∥得到一個(gè)數(shù)∥∥∥∥∥再相乘∥∥再相乘∥∥再相乘∥∥再相乘∥常量。