Pagini recente » Cod sursa (job #2249265) | Cod sursa (job #3262541) | Cod sursa (job #319212) | Cod sursa (job #2211147) | Cod sursa (job #1512646)
#include <iostream>
#include <fstream>
#define nmax 500001
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
int n;
int A[nmax];
void read();
void qs(int st, int dr);
void write();
int main()
{
read();
qs(1, n);
write();
return 0;
}
void read()
{
fi >> n;
for (int i = 1; i <= n; i++)
fi >> A[i];
}
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);
}
void write()
{
for (int i = 1; i <= n; i++)
fo << A[i] << " ";
}