nth_element 找第k大的數
nth_element
nth_element用於排序一個區間,它使得位置n上的元素正好誰全排序情況下的第n個元素,而且,當nth_element返回的時候,所有按照全排序規則排在位置n之前的元素也都排在位置n之前,按照全排序規則排在n之後的元素全都排在位置n之後。
所以,我們使用nth_element既可以尋找最好的前k個元素,也可以尋找第k大元素。
先看示例:
#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;
int main()
{
int a[10] = { 8, 9, 1, 2, 4, 3, 5, 6, 7, 10 };
nth_element(a, a + 5, a + 10, std::greater<int>());
cout << "陣列中的中間元素是" << a[5] << endl;
nth_element(a, a, a + 10, std::greater<int>());
cout << "陣列中第1大元素為" << a[0] << endl;
nth_element(a, a + 1, a + 10, std::greater<int>());
cout << "陣列中第2大元素是" << a[1] << endl;
}
結果為:
陣列中的中間元素是5
陣列中第1大元素為10
陣列中第2大元素是9
請按任意鍵繼續. . .
相關文章
- 1106: 找第K位數
- 尋找陣列中第K大的元素陣列
- 無序陣列求第K大的數陣列
- 快排思想O(N)求第k大數
- 找出陣列中第 k 大的數字及其出現次數陣列
- 第 k 大區間
- 分治與遞迴-找k個臨近中位數的數遞迴
- LeetCode題解(Offer22):尋找連結串列中倒數第k個節點(Python)LeetCodePython
- 查詢陣列中第K大的元素陣列
- [LeetCode] K-th Smallest Prime Fraction 第K小的質分數LeetCodeFraction質分數
- 遞迴-第X大的數遞迴
- K大數查詢
- sort與nth_element使用
- LeetCode第4題:尋找兩個有序陣列的中位數LeetCode陣列
- 連結串列倒數第k個結點
- 獲取一個陣列裡面第K大的元素陣列
- 找0的個數
- 【陣列】1539. 第 k 個缺失的正整數(簡單)陣列
- 第k大元素
- 找質數
- 單連結串列倒數第k結點輸出
- 【遞迴打卡2】求兩個有序陣列的第K小數遞迴陣列
- 每日一練(26):二叉搜尋樹的第k大節點
- 【字典序第k小】
- 劍指offer——連結串列中倒數第k個結點
- leetcode 287 尋找重複的數LeetCode
- LeetCode:尋找丟失的數字LeetCode
- 尋找 K8s 1.14 Release 裡的“蚌中之珠”K8S
- 二分找數
- 遞推--找數字
- 劍指 Offer 54. 二叉搜尋樹的第k大節點 mark
- 陣列中的第K個最大元素陣列
- 力扣 - 劍指 Offer 54. 二叉搜尋樹的第k大節點力扣
- 如何高效尋找素數
- lgP5788 陣列中尋找右側第一個大於它的數陣列
- abc343F 區間第2大的出現次數
- 第八大奇蹟【區間查詢第8大數】
- TopK問題,陣列中第K大(小)個元素問題總結TopK陣列