#include <cstdio>
#include <iostream>
#include <cstring>
#define MAXN 1000005
using namespace std;
int input[MAXN];
/*
* 快速排序
*/
void QuickSort(int a[],int left,int right){ //数组和上下界
if(!(left < right)) //递归结束条件
return;
int key = a[left]; //轴值
int l,r;
l = left;
r = right;
//一轮快排
while(l < r){
while(l < r && a[r] >= key)
r--;
a[l] = a[r];
while(l < r && a[l] <= key)
l++;
a[r] = a[l];
}
a[l] = key;
//递归
QuickSort(a,left,l-1);
QuickSort(a,l+1,right);
}
int main(){
int n,m; //接受输入
while(scanf("%d%d",&n,&m) != EOF) {
for(int i = 1;i <= n; i++)
scanf("%d",&input[i]);
QuickSort(input,1,n);
for(int i = n;i > n - m;i--)
if(i != n-m+1)
printf("%d ",input[i]);
else
printf("%d\n",input[i]);
}
return 0;
}
HDOJ1425 sort-快排水题
最新推荐文章于 2019-04-18 21:09:54 发布