java算法有哪些 一道java面試題,20億數(shù)字的文本排序,如何取前100?
一道java面試題,20億數(shù)字的文本排序,如何取前100?因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最
一道java面試題,20億數(shù)字的文本排序,如何取前100?
因?yàn)檫@是一個(gè)Java問(wèn)題,所以這是典型的TOPK問(wèn)題。首先取前100個(gè)數(shù)字構(gòu)建一個(gè)最小堆,然后依次從堆的頂部插入剩余的數(shù)字,同時(shí)調(diào)整堆。堆中最后100個(gè)元素就是結(jié)果??臻g復(fù)雜度為k,時(shí)間復(fù)雜度為nlogk
~]。
Java的排序算法是什么?Java排序可以分為兩類:內(nèi)部排序和外部排序。在排序過(guò)程中,如果所有記錄都存儲(chǔ)在內(nèi)存中,則稱為內(nèi)部排序。如果排序過(guò)程中需要外部?jī)?nèi)存,則稱為外部排序。以下排序?qū)儆趦?nèi)部排序:1。插入排序:直接插入排序、二分法插入排序、希爾排序。2選擇排序:簡(jiǎn)單選擇排序和堆排序。三。交換排序:氣泡排序,快速排序。4合并和排序。5基數(shù)排序。Java算法,一共有多少個(gè),哪個(gè),怎么分類?1算法分為遞歸、迭代、并行、序列、過(guò)程、確定性、不確定性等。2有線性規(guī)則、貪婪算法、貪婪算法等。