Cod sursa(job #1930734)

Utilizator CriistinaMicula Cristina Criistina Data 19 martie 2017 11:23:48
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>
#define Nmax 500001

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");

int n, v[Nmax];


int poz(int st, int dr)
{
    int aux=v[dr];
    int i=st-1;
    for(int j=st;j<=dr-1;j++)
    {
        if(v[j]<=aux)
        {
            i++;
            swap(v[i], v[j]);
        }
    }
    swap(v[i+1], v[dr]);
    return i+1;
}
void quick_sort(int st, int dr)
{
    int p;
    if(st<dr)
    {
        p=poz(st, dr);
        quick_sort(st, p-1);
        quick_sort(p+1, dr);
    }
}

int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    quick_sort(1, n);
    for(int i=1;i<=n;i++)
        g<<v[i]<<" ";
    return 0;
}