求助-来自暴龙
查看原帖
求助-来自暴龙
658632
coin_sir楼主2022/2/11 10:25
#include<bits/stdc++.h>
using namespace std;
int pai(int, int);
int a[5000001];
int k;int n;
int main()
{
   cin>>n>>k;
   for(int cs=1;cs<=n;cs++)
   {
   	   cin>>a[cs];
   }
   pai(1,n);
} 
int pai(int z,int y)
{
	int mid,l,r;
	mid=a[(z+y)/2];l=z;r=y;
        do
		{
			while(a[l]<mid)
    	l++;
    	    while(a[r]>mid)
    	r--;
            if(l<=r)
    	{
    		swap(a[l],a[r]);
    		l++;r--;//即使发生交换,l,r的变化不能停止
		}
		} 	while(l<=r);
	if(k<=r) pai(y,r);
    else if(l<=k) pai(l,z);
    else {
	cout<<r<<" "<<l<<a[r]<<a[r+1]<<"标记"<<endl;cout<<a[r+2]<<endl;return 0;}
}
2022/2/11 10:25
加载中...