C - sort HDU - 1425(快速排序)

给你n个整数,请按从大到小的顺序输出其中前m大的数。

Input

每组测试数据有两行,第一行有两个数n,m(0

Output

对每组测试数据按从大到小的顺序输出前m大的数。

Sample Input

5 3
3 -35 92 213 -644

Sample Output

213 92 3


        
  

Hint

请用VC/VC++提交
        
 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define inf 0x3f3f3f3f
typedef long long ll;
const int N=1000000+5;
const int MOD = 1e5+ 7;
int a[N];
int n,m;
int fsort(int l,int r)
{
    int val=a[l];
    while(true)
    {
        while(l=val) l++;
        if(l==r)
            break;
        a[r--]=a[l];
    }
    a[l]=val;  
    return l;
}
void qqsort(int l,int r)
{
    if(l>=r)    //不能写成if(l==r),因为当mid==0时,l=0,r=-1;
        return;
    int mid=fsort(l,r);
    qqsort(l,mid-1);
    if(mid+1

 

你可能感兴趣的:(快排,排序,算法小结)