Pagini recente » Cod sursa (job #3128506) | Cod sursa (job #3237834) | Cod sursa (job #273997) | Cod sursa (job #2870652) | Cod sursa (job #1541518)
#include <iostream>
#include <fstream>
#define nmax 500001
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
int n;
int A[nmax];
void qs(int st, int dr)
{
if (st > dr)
return;
int pivot = A[(st + dr) >> 1];
int i = st, j = dr;
for (;i<=j;)
{
for (; A[i] < pivot;) i++;
for (; A[j] > pivot;) j--;
if (i <= j)
{
swap(A[i], A[j]);
i++, j--;
}
}
qs(st, j);
qs(i, dr);
}
int main()
{
fi >> n;
for (int i = 1; i <= n; i++)
fi >> A[i];
qs(1, n);
for (int i = 1; i <= n; i++)
fo << A[i] << " ";
fi.close();
fo.close();
return 0;
}