求助!!!为什么超时了?
查看原帖
求助!!!为什么超时了?
1141489
Sasanguk楼主2023/11/28 20:57

用快排做的,但是提交的时候后两个测试数据超时了

#include <iostream>
using namespace std;

const int MAX=5000001;
int n,num[MAX],k;
void quick_sort(int num[],int l,int r)
{
    if(l>=r)
        return;
    int x=num[(l+r)/2];
    int i=l-1,j=r+1;
    while(i<j)
    {
        do
        {
            i++;
        }while(num[i]<x);
        do
        {
            j--;
        }while(num[j]>x);
        if(i<j)
            swap(num[i],num[j]);
    }
    quick_sort(num,l,j);
    quick_sort(num,j+1,r);
}
int main()
{
    cin>>n>>k;
    for(int i=0;i<n;i++)
        cin>>num[i];
    quick_sort(num,0,n-1);//快排
    cout<<num[k]<<endl;
    return 0;
}

2023/11/28 20:57
加载中...