Cod sursa(job #2540450)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 7 februarie 2020 10:18:00
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");
int v[500005],n,i;
int pivot(int st,int dr)
{
int p=(long long)rand()*rand()%(dr-st)+st;
swap(v[p],v[dr]);
int j=st-1;
for(int i=st; i<dr; i++)
        if(v[i]<v[dr])
            swap(v[i],v[++j]);
swap(v[++j],v[dr]);
return j;
}
void q(int st,int dr)
{if(st<dr){int p=pivot(st,dr);
q(st,p-1);
q(p+1,dr);
}
}
int main()
{
fin>>n;
srand(time(0));
for(i=1; i<=n; i++)
fin>>v[i];
q(1,n);
for(i=1; i<=n; i++)
fout<<v[i]<<" ";
}