Pagini recente » Cod sursa (job #442272) | Istoria paginii runda/lol123/clasament | Cod sursa (job #2980714) | Istoria paginii runda/becreative16/clasament | Cod sursa (job #1234912)
#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;
while (i <= j)
{
int pivot = A[(st+dr)>>1];
while (A[i] < pivot)
i++;
while (A[j] > pivot)
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;
}