Cod sursa(job #344653)

Utilizator serbanlupulupulescu serban serbanlupu Data 31 august 2009 04:20:28
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

vector<int > v;
int n;

void read()
{
	fstream f("algsort.in", ios::in);
	f>>n;
	v.resize(n+1);
	for (int i=1; i<=n; ++i)
	{
		f>>v[i];
	};
	f.close();
}

inline void quick_sort(int left, int right)
{
	int i=left, j=right;
	int middle=v[(i+j)>>1];
	do
	{
		while (v[i] < middle) ++i;
		while (v[j] > middle) --j;
		if (i<=j)
		{
			swap(v[i], v[j]);
			++i;
			--j;
		}
	} while (i<=j);
	if (i < right)
		quick_sort(i, right);
	if (j > left)
		quick_sort(left, j);
}

void solve()
{
	read();
	fstream g("algsort.out", ios::out);
	quick_sort(1, n);
	for (int i=1; i<=n; ++i)
		g<<v[i]<<" ";
	g.close();
}

int main()
{
	solve();
	return 0;
}