数组中的第 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<iostream>

#include<algorithm>

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

以上是 数组中的第 K 个最大元素 的全部内容, 来源链接: utcz.com/z/360457.html

回到顶部