萌新求助!!!

P1923 【深基9.例4】求第 k 小的数

丿临〆江仙乀 @ 2023-11-09 21:22:59

#include<bits/stdc++.h>
using namespace std;
int x[5000005],k,n;
int qsort(int l,int r)
{
    int i=l,j=r,mid=x[(l+r)/2];
    do
    {
        while(x[i]<mid)
        {
            i++;
        }
        while(x[j]>mid)
        {
            j--;
        }
        if(i<=j)
        {
            swap(x[i],x[j]);
            i++;
            j--;
        }
    }
    while(i<=j);
    if (k<=j) qsort(l,j);
    else if (k>=i) qsort(i,r);
    else
    {
        cout<<x[k];
        return 0;
    }
}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x[i]); 
    }
    qsort(1,n);
}

//为什么把题解中的从0到n-1输入改成从1到n输入就错了呢


by 帝都_henry26268 @ 2023-11-09 21:30:29

如果我说 “最小的数是第0小”


|