Cod sursa(job #246085)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 19 ianuarie 2009 21:05:16
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
//fstream fin ("algsort.in",ios::in);
//fstream fout("algsort.out",ios::out);
unsigned int v[500010],n;

void qsort(long l, long r)   
{   
 long i,j,x,y;   
 i=l;   
 j=r;   
 x=v[(l+r)>>1];   
 do   
    {   
    while ((v[i]<x)&&(i<n)) ++i;   
    while ((x<v[j])&&(j>1)) --j;   
    if (i<=j)   
        {   
        y=v[i];   
        v[i]=v[j];   
        v[j]=y;   
        ++i;   
        --j;   
        }   
    }   
 while (i<=j);   
 if (l<j) qsort(l,j);   
 if (i<r) qsort(i,r);   
}   

int main(){
	freopen ("algsort.in","r",stdin);   
    freopen ("algsort.out","w",stdout);   
    scanf("%ld",&n);   
    for (int i=1;i<=n;++i)   
        scanf("%ld",&v[i]);

	
		qsort(1,n);
	for(int i=1;i<=n;++i)
		printf("%ld ",v[i]);   
	
}