Cod sursa(job #1294395)

Utilizator deea101Andreea deea101 Data 17 decembrie 2014 15:13:35
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <algorithm>
#include <iostream>
#define NMAX 500001
 
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
 
int v[NMAX];
 
void qsort (int S, int F)
{
    int pivot=(S+F)>>1;
	int valPivot=v[pivot];
	
	swap(v[F],v[pivot]);
	pivot=F;
	
	int wall=S;
	for(int i=S;i<F;i++)
		if(v[i]<valPivot)
		{
			swap(v[wall],v[i]);
			wall++;
		}
	
	swap(v[wall],v[pivot]);
	
	if(wall>S) qsort(S,wall-1);
	if(F>wall) qsort(wall+1,F);
}

int main()
{
    int N;
    f>>N;
 
    int i;
    for(i=1;i<=N;i++)
        f>>v[i];
 
    qsort(1,N);
 
    for(i=1;i<=N;i++)
        g<<v[i]<<' ';
	cout<<clock();
}