Cod sursa(job #2783989)

Utilizator RaresPoinaruPoinaru-Rares-Aurel RaresPoinaru Data 15 octombrie 2021 15:27:45
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int n,v[500001];
void Quicksort (int left, int right)
{
    int len=right-left+1;
    if (len<=1)return;
    if (len==2)
    {
        if (v[left]>v[right])
            swap (v[left],v[right]);
        return;
    }
    int x=(left+right)/2;
    swap (v[x],v[right]);
    int i=left;
    for (int j=left;j<right;++j){
        if (v[j]<=v[right]){
            swap (v[i],v[j]);
            i++;
        }
    }
    swap (v[right],v[i]);
    Quicksort(left,i-1);
    Quicksort(i+1,right);
}
int main()
{
    srand(time(NULL));
    fin >>n;
    for (int i=1;i<=n;++i)
        fin >>v[i];
    Quicksort (1,n);
    for (int i=1;i<=n;++i)
        fout <<v[i]<<' ';
    return 0;
}