Cod sursa(job #640832)

Utilizator an_drey_curentandreycurent an_drey_curent Data 26 noiembrie 2011 15:58:25
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<iostream>
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
vector<long int>v;long int n;
void citire()
{
	long int i,x;
	f>>n;
	for(i=1;i<=n;i++)
	{
		f>>x;
		v.push_back(x);
	}
}
void afisare()
{
	long int i;
	for(i=0;i<n;i++)
		g<<v[i]<<' ';
}
void quicksort(long int stanga,long int dreapta)
{
	long int mijloc=v[(stanga+dreapta)/2];
	long int i=stanga,j=dreapta;
	while(i<=j)
	{
		while(v[i]<mijloc)
			i++;
		while(v[j]>mijloc)
			j--;
		if(i<=j)
		{
			swap(v[i],v[j]);
			i++;j--;
		}
	}
	if(j>stanga)
		quicksort(stanga,j);
	if(i<dreapta)
		quicksort(i,dreapta);
}
int main()
{
	citire();
	quicksort(0,n-1);
	afisare();
	f.close();
	g.close();
	return 0;
}