Cod sursa(job #1281139)

Utilizator bujorcatalin14Bujor Catalin bujorcatalin14 Data 2 decembrie 2014 21:21:55
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>
#define nmax 500001

using namespace std;

ifstream fin("algsort.in ");
ofstream fout("algsort.out");

int n , a[nmax];

void Citire()
{
    int i;
    fin>>n;
    for(i=1;i<=n;i++)
     fin>>a[i];
}

void Afisare()
{
    int i;
    for(i=1;i<=n;i++)
    fout<<a[i]<<" ";
}

int Pivot(int i ,int j)
{
    int st,dr,x;
    st=i; dr=j; x=a[i];

    while(st<dr)
    {
        while(st<dr && a[dr]>=x) dr--;
        a[st]=a[dr];
        while(st<dr && a[st]<=x) st++;
        a[dr]=a[st];
    }
    a[st]=x;
 return st;
}

void Qsort(int i , int j)
{
    int m;
    m=Pivot(i,j);
    if(m-1 > i) Qsort(i,m-1);
    if(m+1 < j) Qsort(m+1,j);
}


int main()
{
    Citire();
    Qsort(1,n);
    Afisare();
    return 0;
}