Pagini recente » Cod sursa (job #937444) | Cod sursa (job #1937068) | Cod sursa (job #2649792) | Cod sursa (job #1339932) | Cod sursa (job #1234842)
#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)
{
int dis, i, j;
if (st < dr) {
i = st;
j = dr;
dis = 1;
while (i != j)
if (dis == 1)
if (A[i] <= A[j])
i++;
else
{
swap(A[i], A[j]);
j--;
dis = -1;
}
else
if (A[i] <= A[j])
j--;
else
{
swap(A[i], A[j]);
i++;
dis = 1;
}
qs(st, i-1);
qs(i+1, dr);
}
}
void read()
{
fin >> n;
for (i=1; i<=n; i++)
fin >> A[n-i+1];
}
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;
}