Cod sursa(job #1324953)

Utilizator deea101Andreea deea101 Data 22 ianuarie 2015 22:52:02
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
using namespace std;

#define NMAX 500001

int v[NMAX];

void swap(int &x,int &y)
{
	int aux=x;
	x=y;
	y=aux;
}

void qsort(int v[], int S, int F)
{
    int piv=S+(F-S)/2;
    int valPiv=v[piv];
	
	swap(v[piv],v[F]);
	
	int i,wall=S;
	for(i=S;i<F;i++)
	{
		if(v[i]<=valPiv)
		{
			swap(v[i],v[wall]);
			wall++;
		}
	}
	
	swap(v[wall],v[F]);
	
	if(wall>S) qsort(v,S,wall-1);
	if(wall<F) qsort(v,wall+1,F);
}

#include <fstream>
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
    int N;
    f>>N;
    int i;
    for(i=1;i<=N;i++)
        f>>v[i];
     
    qsort(v,1,N);
 
    for(i=1;i<=N;i++)
        g<<v[i]<<' ';
}