Cod sursa(job #1151766)

Utilizator roxanamacsim17Macsim Roxana roxanamacsim17 Data 24 martie 2014 12:49:58
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
using namespace std;
int a[500001],n;
void citire()
{ifstream fin("algsort.in");
    fin>>n;
    for(int i=0;i<n;++i)
    fin>>a[i];
    //fin.close();
    }
    void afisare()
    {
        ofstream g("algsort.out");
       for(int i=0;i<n;++i)
        g<<a[i]<<' ';
        //g<<'\n';
        //g.close();
    }
    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(){
    citire();
    qsort(0,n-1);
    afisare();
    return 0;
    }