求第K大數

2021-09-10 19:55:05 字數 554 閱讀 2051

問題 a: 求第k大數

時間限制: 1 sec 記憶體限制: 128 mb

提交: 483 解決: 172

[提交][狀態][討論版][命題人:外部匯入]

題目描述

求第k大的數

(kth.pas/c/cpp)

給定乙個長度為n(1≤n≤1,000,000)的無序正整數序列,以及另乙個數k(1≤k≤1,000,000)(關於第k大的數:例如序列中第3大的數是4。)

輸入第一行兩個正整數m,n。

第二行為n個正整數。

輸出第k大的數。

樣例輸入

6 31 2 3 4 5 6

樣例輸出

4自己**:

#include#include#includeusing namespace std;

int main()

sort(a,a+m);

printf("%d\n", a[m - n]);

} system("pause");

return 0;

}

求第k大數

quad 求乙個序列裡面第k大的數,用partition可以再o n o n o n 時間複雜度內求解 對數a left,right 進行一次partition操作後,主元pivot左側元素都小於它,右側都大於它。設 pivot索引為p,則pivot是第p left 1大元素。求第k大時,若k p ...

問題 A 求第k大數

題目鏈結 題目描述 給定乙個長度為n 1 n 1,000,000 的無序正整數序列,以及另乙個數k 1 k 1,000,000 關於第k大的數 例如序列中第3大的數是4。輸入 第一行兩個正整數m,n。第二行為n個正整數。輸出 第k大的數。樣例輸入 6 31 2 3 4 5 6 樣例輸出 4 incl...

N個數,求第K大數

有n個不重複的數,這n個數可以放入記憶體中,讓你用最快的方法找到第k大的數。解答 一般情況我們可能考慮,先將n個數排序 快排序 堆排序 然後可以得到結果。但是當n很大時這樣做的效率會很低。所以我們提出一種更高效的方法 利用快速排序的特點 第一遍排序會確定乙個數的位置,這個數左邊都比它大,右邊都比他小...