我虽然用sort过了,但问一下快排为什么最后一点TLE了
查看原帖
我虽然用sort过了,但问一下快排为什么最后一点TLE了
775551
caojiaming楼主2022/12/22 09:11
#include <queue>
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n,a[100007],cur;
void Fast_Sort(int arr[], int left, int right)
{
    if (left >= right)
        return;
    int i = left, j = right;
    while (i < j)
    {
        while (j > i && arr[j] >= arr[left])
            j--;
        while (i < j && arr[i] <= arr[left])
            i++;
        swap(arr[i], (i == j) ? arr[left] : arr[j]);
    }
    Fast_Sort(arr, left, i-1);
    Fast_Sort(arr, j+1, right);
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    Fast_Sort(a,1,n);
    for(int i=1;i<=n;i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}
2022/12/22 09:11
加载中...