用优先队列求第K小的数

#include
#include
#include
#include
#include
#include
#define mod 100000007
using namespace std;
typedef long long ll;
priority_queue,less > heap;  //最大堆
int main()
{
    int n,k;
    int x;
    printf("请输入n和k\n");
    scanf("%d %d",&n,&k);
    printf("请输入n个数\n");
    for(int i=0;ix)
            {
                heap.pop();
                heap.push(x);
            }
        }
    }
    printf("第%d个小的数是:%d\n",k,heap.top());
    return 0;
}

 

你可能感兴趣的:(STL)