求无序序列中第K小的元素

编写一个程序,利用pirority_queue(优先队列)求出一个无序整数序列中的第K小元素。

对于这题,优先队列已经表明了这题的简单性

define shuiyunsheng 6666666666666666

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include<algorithm>
#include<ctime>
#include<cstdio>
#include<queue>
using namespace std;

//priority_queue <int, vector<int>, less<int> > q;
//
//int main() {
//	int n,m,cnt;
//	cin >> n >> m;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> cnt;
//		q.push(cnt);
//	}
//	for (int i = 1; i < m; i++)
//	{
//		q.pop();
//	}
//	cout << q.top();
//}

priority_queue <int, vector<int>, greater<int> > q;

int main() {
	int n, m, cnt;
	cin >> n >> m;
	for (int i = 0; i < n; i++)
	{
		cin >> cnt;
		q.push(cnt);
	}
	for (int i = 1; i < m; i++)
	{
		q.pop();
	}
	cout << q.top();
}


版权声明:本文为jokersboost原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。