Pagini recente » Cod sursa (job #202611) | Cod sursa (job #1588359) | Cod sursa (job #1021130) | Cod sursa (job #2381384) | Cod sursa (job #652171)
Cod sursa(job #652171)
#include <fstream.h>
int v[500100];
void quick (int l1, int l2)
{
int l1a, l2a;
l1a = l1;
l2a = l2;
int pivot = 1;
if (l1 >= l2) return;
while (l1 < l2)
{
if (v[l1] > v[l2])
{
int auxiliar = v[l1];
v[l1] = v[l2];
v[l2] = auxiliar;
if (pivot == 1)
{
l1++;
pivot = 2;
}
else
{
l2--;
pivot = 1;
}
}
else
{
if (pivot == 1) l2--;
else l1++;
}
}
quick (l1a, l1 - 1);
quick (l1 + 1, l2a);
}
void main()
{
int i, lungime;
ifstream fin;
fin.open("fast.in");
fin >> lungime;
for (i = 0; i < lungime; i++)
{
fin >> v[i];
}
fin.close ();
quick (0, lungime - 1);
ofstream fout;
fout.open ("fast.out");
for (i = 0; i < lungime; i++)
{
fout << v[i] << " ";
}
}