Cod sursa(job #1610940)

Utilizator aaabbbcccGeo Constantinescu aaabbbccc Data 23 februarie 2016 20:39:01
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],n;
int Divide(int p,int q)
{
    int st=p,dr=q,x=a[p];
    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 p,int q)
{
    int m=Divide(p,q);
    if(m-1>p)
        Qsort(p,m-1);
    if(m+1<q)
        Qsort(m+1,q);
}
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
    {
        f>>a[i];
    }
    Qsort(1,n);
    for(int i=1;i<=n;i++)
        g<<a[i]<<" ";
}