Cod sursa(job #3241108)

Utilizator Gabriel_DaescuDaescu Gabriel Florin Gabriel_Daescu Data 26 august 2024 15:39:35
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream  fin("algsort.in");
ofstream fout("algsort.out");
int n,i,v[500009];

int Divide(int st, int dr)
{
    int pivot;
    pivot=v[st];

    while(st<dr)
    {
        while(st<dr && v[dr]>=pivot)
        {
            dr--;
        }
        v[st]=v[dr];

        while(st<dr && v[st]<=pivot)
        {
            st++;
        }
        v[dr]=v[st];
    }

    v[st]=pivot;

    return st;
}

void Quick_Sort(int st, int dr)
{
    int poz;
    if(st<dr)
    {
        poz=Divide(st,dr);
        Quick_Sort(st,poz-1);
        Quick_Sort(poz+1,dr);
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    fin.tie(NULL);

    srand(time(NULL));

    fin>>n;

    for(i=1; i<=n; i++)
    {
        fin>>v[i];
    }

    Quick_Sort(1,n);

    for(i=1; i<=n; i++)
    {
        fout<< v[i] << " ";
    }

    return 0;
}