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é)果。空間復(fù)雜度是k,時(shí)間復(fù)雜度是nlogk
讀他的書時(shí)感到頭暈是很正常的,因?yàn)榇蠖鄶?shù)中國(guó)教授都不在乎你能不能聽懂。他們關(guān)心的是教材是否更具“學(xué)術(shù)性”。他們不好意思打招呼沒有希臘字母的公式。當(dāng)你介紹計(jì)算機(jī)語言時(shí),你能很快理解教授的水平如何表現(xiàn)嗎?可憐的上帝,我看到了發(fā)明C語言的上帝。讀他的書,我懷疑他是否會(huì)說C語言。。。在網(wǎng)上閱讀Arduino的教程,把軟硬件結(jié)合起來學(xué)習(xí),先了解基本的硬件,再了解軟件是如何控制硬件的,這樣才能真正學(xué)會(huì)理解C語言。。。