Cod sursa(job #1889106)

Utilizator medicinedoctoralexandru medicinedoctor Data 22 februarie 2017 16:16:41
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#include <vector>

using namespace std;

vector <int> a;

void read()
{
	int n;
	ifstream f("algsort.in");

	f >> n;

	a.resize(n);

	for (int i = 0; i < a.size(); i++)
		f >> a[i];

	f.close();
}

void qs(int l, int r)
{
	int i = l, j = r, q = a[ (i + j) / 2];

	while (i < j)
	{
		while (a[i] < q) i++;
		while (a[j] > q) j--;
		if (i<=j)
		{
			swap(a[i], a[j]);
			i++; j--;
		}
	}

	if (i < r) qs(i, r);
	if (l < j) qs(l, j);
}

void write()
{
	ofstream f("algsort.out");

	for (int i = 0; i < a.size(); i++)
		f << a[i] << ' ';

	f.close();
}

int main()
{
	read();

	qs(0, a.size()-1 );

	write();

	return 0;
}