演算法筆記 問題 A 求第k大數

2021-10-14 17:21:23 字數 685 閱讀 2578

題目描述

求第k大的數

(kth.pas/c/cpp)

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

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

第二行為n個正整數。

輸出第k大的數。

樣例輸入 copy

6 3

1 2 3 4 5 6

樣例輸出 copy

4
演算法筆記上的例項求得是第k小的值。可能是理解角度不同。

#include using namespace std;

int paritition(vector&a, int left, int right)

a[left] = temp;

return left;

}int quickselect(vector&a, int left, int right, int k)

else

}int main()

int left = 0, right = nums.size() - 1;

printf("%d\n", quickselect(nums, left, right, n));

}return 0;

}

問題 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...

求第K大數

問題 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大數

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