Cod sursa(job #609644)

Utilizator predator5047Butiu Alexandru Octavian predator5047 Data 22 august 2011 16:38:42
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
using namespace std;
vector<int> v (500000);
int n;
void citire(); void qsort(int l,int r);
void afisare();
int main()
{
    citire();
    qsort(0,n-1);
    afisare();
    return 0;
}

void afisare()
{
    ofstream fout("algsort.out");
    for(int i=0;i < n;++i)
        fout<<v[i]<<" ";

    fout.close();
}

void qsort(int l,int r)
{
    int i=l,j=r,t=v[(l+r)/2];
    while(i<=j)
    {
        while(v[i]<t) ++i;
        while(v[j]>t) --j;
        if(i<=j)
        {
            swap(v[i],v[j]);
            ++i;
            --j;
        }
    }
    if(i<r) qsort(i,r);
    if(l<j) qsort(l,j);
}
void swap(int &a,int &b)
{
    int aux=a; a=b; b=aux;
}
void citire()
{
    ifstream fin("algsort.in");
    fin>>n;
    for(int i=0;i<n;++i)
        fin>>v[i];


}