查詢最小的k個元素

2021-05-26 08:05:03 字數 303 閱讀 5861

題目:輸入n個整數,輸出其中最小的k個。

演算法思想,要是將n個數排序然後輸出前k個,方法很簡單,但計算量比較大,為o(nlogn)。

要是新建乙個有k個元素陣列,在陣列不滿時,將每乙個輸入的資料存入陣列。若陣列滿了,則比較輸入的資料與陣列中最大元素的大小,來決定接下來幹什麼,接下來幹什麼,***。我語言表達能力不行,就這麼凑活看吧。這樣的話,需要排序陣列k,計算複雜度變為

o(n+klogk)。要是k<

main()中,輸入資料時以輸入0結束,這不是個好的方法,可是不知道怎麼結束,這個問題困擾我很久了。希望有人可以告訴我。。。。。

查詢最小的k個元素

查詢最小的k個元素 題目 輸入n個整數,輸出其中最小的k個。例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4。1 輸入元素,並排序 2 輸出前k個元素 排序 採用高效的排序方法,如 快速排序,歸併排序等 方法一 採用最簡單的方法 include include in...

查詢最小的k個元素

題目 輸入n個整數,輸出其中最小的k個數 例如 1 2 3 4 5 6 7 8 這8個數字,則最小的4個數字為1,2,3,4,第一種 直接對其先排序,再取頭幾個數 這樣最快是nlogn 快排或者堆排 include using namespace std void partsort int a,in...

查詢最小的k個元素

題目 輸入n個整數,輸出其中最小的k個。例如輸入1,2,3,4,5,6,7和這8個數字,則最小的4個數字為1,2,3和4。分析 這道題最簡單的思路莫過於把輸入的n個整數排序,這樣排在最前面的k個數就是最小的k個數。只是這 種思路的時間複雜度為o nlogn 我們試著尋找更快的解決思路。我們可以開闢乙...