在C ++中使用STL的第K个最小/最大元素

在本教程中,我们将编写一个程序,该程序在未排序的数组中找到第k个最小的数字。

让我们看看解决问题的步骤。

  • 初始化数组和k。

  • 初始化一个空的有序集合。

  • 遍历数组并将每个元素插入数组。

  • 从0到k-1遍历集合。

  • 返回值。

示例

让我们看一下代码。

#include <bits/stdc++.h>

using namespace std;

int findKthSmallestNumber(int arr[], int n, int k) {

   set<int> set;

   for (int i = 0; i < n; i++) {

      set.insert(arr[i]);

   }

   auto it = set.begin();

   for (int i = 0; i < k - 1; i++) {

      it++;

   }

   return *it;

}

int main() {

   int arr[] = { 45, 32, 22, 23, 12 }, n = 5, k = 3;

   cout << findKthSmallestNumber(arr, n, k) << endl;

   return 0;

}

输出

如果运行上面的代码,则将得到以下结果。

23

以上是 在C ++中使用STL的第K个最小/最大元素 的全部内容, 来源链接: utcz.com/z/331864.html

回到顶部