快排TLE了,新手求助
查看原帖
快排TLE了,新手求助
1158150
Hhhhchain楼主2023/10/26 13:00
#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;
const int N= 1e+5+20;
int a[N];
int cnt=0;
void quick_sort(int l,int r){
    if(l>=r)return;
    int i=l,j=r-1;
    int Mid = a[rand()%(r-l+1)+l];
    while(i<j){
        while(a[i]<Mid)i++;
        while(a[j]>Mid)j--;
        if(i<j)swap(a[i],a[j]);
        if(a[i]==Mid && a[j]==Mid)i++;
    }
    quick_sort(l,i);
    quick_sort(j+1,r);
}

int main() {
    int n;
    scanf("%d",&n);
    for(inti=0;i<n;i++)scanf("%d",&a[i]);
    quick_sort(0,n);
    for(int i=0;i<n;i++)printf("%d",a[i]);
    return 0;
}

看了别人的做法,我没想出来我哪里多了耗时。。。

2023/10/26 13:00
加载中...