ZUFEOJ
Home
ProblemSet
Source/Category
Contest
Status
Ranklist
F.A.Qs
Login
Register
6479: 快排的次数
内存限制:256 MB
时间限制:2 S
题面:传统
评测方式:文本比较
上传者:
提交:3
通过:1
提交
提交记录
统计
Web Board
题目描述
#include <bits/stdc++.h>
using namespace std;
int sum;
int a[2001];
int select(int l, int r, int k){
sum++;
int m=a[(l+r)/2],t;
int i=l,j=r;
while(i<=j){
while (a[i]>m)i++;
while (a[j]<m)j--;
if(i<=j){
t=a[i]; a[i]=a[j];a[j]=t;
i++; j--;
}
}
if(k<=j) return select(l,j,k);
if(k>=i) return select(i,r,k);
return a[k];
}
int main()
{
int n,k;
cin>>n>>k;
sum=0;
for(int i=1;i<=n;i++)cin>>a[i];
cout<<select(1,n,k)<<"\n";
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
cout<<"\n";
cout<<sum<<endl;
return 0;
}
输入样例
复制
输出样例
复制
分类标签
绍兴模拟卷3