Cod sursa(job #1021183)

Utilizator 3nTRoPYiorga dan 3nTRoPY Data 3 noiembrie 2013 14:05:28
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdlib>
#include <iostream>
#include <fstream>

using namespace std;

int v[500000];
int n;

int pivot(int i, int j)
{
 		int si=0, sj=-1, t;
 		while(i<j)
 		{
			if(v[i]>v[j])
			{
		    v[i]=v[i]^v[j];
		    v[j]=v[i]^v[j];
		    v[i]=v[i]^v[j];
		    t=-si;
		    si=-sj;
		    sj=t;
			}
			i+=si;
			j+=sj;
    }
    return i;
}

void qs(int i, int j)
{
 		 if(i<j)
 		 {
			 int p = pivot(i,j);
			 qs(i, p-1);
			 qs(p+1, j);
     }
}

int main(int argc, char *argv[])
{
 		ifstream fin("algsort.in");
		fin>>n;
		int i;
		for(i=0;i<n;i++)
		   fin>>v[i];
		qs(0, n-1);
		ofstream fout("algsort.out");
		for(i=0;i<n;i++)
		   fout<<v[i]<<" ";		
    return EXIT_SUCCESS;
}