Pagini recente » Cod sursa (job #2103037) | Cod sursa (job #2026931) | Cod sursa (job #2821817) | Cod sursa (job #1235967) | Cod sursa (job #1234990)
#include <iostream>
#include <fstream>
#define nmax 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, i;
int A[nmax];
void qs(int st, int dr)
{
if (st >= dr)
return;
int i = st, j = dr;
int pivot = A[(st + dr) >> 1];
for (; i <= j;)
{
for (; pivot > A[i];) i++;
for (; pivot < A[j];) j--;
if (i <= j)
{
swap(A[i], A[j]);
i++, j--;
}
}
qs(st, j);
qs(i, dr);
}
void read()
{
fin >> n;
for (i=1; i<=n; i++)
fin >> A[i];
}
void write()
{
for (i=1; i<=n; i++)
fout << A[i] << " ";
fout << "\n";
}
int main()
{
read();
qs(1, n);
write();
fin.close();
fout.close();
return 0;
}