Cod sursa(job #2673098)

Utilizator GaByxDTodor Marian Gabriel GaByxD Data 15 noiembrie 2020 19:13:59
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include<iostream>
#include<fstream>
using namespace std;
ifstream f ("algsort.in");
ofstream g("algsort.out");
int v[500000],n,i,j;
void QS(int x,int y)
{
    if(x<y)
    {
    if(v[x]>v[(y+x)/2])
        swap(v[x],v[(y+x)/2]);
    if(v[x]>v[y])
        swap(v[x],v[y]);
    if(v[(y+x)/2]>v[y])
        swap(v[(y+x)/2],v[y]);
    i=x;
        swap(v[(y+x)/2],v[y]);
        for(j=x;j<=y-1;j++)
            if(v[j]<v[y])
                {
                    swap(v[i],v[j]);
                    i++;
                }
        swap(v[y],v[i]);
    QS(x,i-1);
    QS(i+1,y);
    }
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];
    QS(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";
}