Pagini recente » Cod sursa (job #603186) | Cod sursa (job #2123717) | Rating Negoita Andrei (AndreiNegoita) | Cod sursa (job #2450365) | Cod sursa (job #1164569)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("algsort.in");
ofstream out ("algsort.out");
const int MAXN = 500001;
int A[MAXN];
inline void swap (int &A, int &B)
{
int t = A;
A = B;
B = t;
}
int partition (int st, int dr)
{
int x = A[dr];
int i = st - 1, j;
for (j = st; j < dr; j ++)
if (A[j] <= x){
i ++;
swap (A[i], A[j]);
}
swap (A[i + 1], A[dr]);
return i + 1;
}
void quicksort (int st, int dr)
{
if (st <= dr){
int p = partition (st, dr);
quicksort (st, p - 1);
quicksort (p + 1, dr);
}
}
int main()
{
int N, i;
in >> N;
for (i = 1; i <= N; i ++)
in >> A[i];
quicksort (1, N);
for (i = 1; i <= N; i ++)
out << A[i] << " ";
in.close ();
out.close ();
return 0;
}