Cod sursa(job #1087450)

Utilizator NitaMihaitavoidcube NitaMihaita Data 19 ianuarie 2014 14:07:18
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
#include<ctime>
#include<cstdlib>
//#include<conio.h>
//#include<iostream>
using namespace std;
int v[500001];
//void afis(int i,int j,int ai,int aj,int x){getch();cout<<x<<" ("<<ai<<","<<aj<<")\n";for(;i<=j;++i)cout<<v[i]<<" ";cout<<"\n";}
void qqq(int i,int j)
{
    int c_i=i,c_j=j,x=v[i];
    while(i<=j)
    {
        while(v[i]<x)++i;
        while(v[j]>x)--j;
        if(i<=j)v[j]=(v[i]+v[j])-(v[i]=v[j]),++i,--j;

    }
    if(c_i<j)qqq(c_i,j);
    if(i<c_j)qqq(i,c_j);
}
int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    int i,n;
    f>>n;
    for(i=1;i<=n;++i)f>>v[i];
    qqq(1,n);
    for(i=1;i<=n;++i)g<<v[i]<<" ";
    f.close();
    g.close();
    return 0;
}