数组中的第 K 个最大元素
从一组数据中,该算法将找到数组的最大元素到第k个最大元素。
这个问题可以通过对数组进行排序来轻松解决。我们可以按升序或降序对它们进行排序。按降序求解,我们可以得到前k个元素来找到我们的结果。
输入和输出
Input: The elements of an array: {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}, K = 4 Output: 4 largest elements are 87 63 50 45
算法
kthLargestElement(array, n, k)
输入:数组,数组中元素的个数,位置k。
输出:显示数组的最大元素到第k个最大元素。
Begin sort the array in descending order for i := 0 to k-1, do display array[i] done End
示例
#include输出结果#include using namespace std; bool compare(int a, int b) { return a>b; } void kthLargestElement(int array[], int n, int k) { sort(array, array+n, compare); for (int i = 0; i < k; i++) //最大到第k个最大元素 cout << array[i] << " "; } int main() { int array[] = {1, 23, 12, 9, 30, 2, 50, 63, 87, 12, 45, 21}; int n = 12; int k = 4; kthLargestElement(array, n, k); }
87 63 50 45