Pagini recente » Cod sursa (job #1253692) | Cod sursa (job #1252505) | Cod sursa (job #1965302) | Cod sursa (job #691622) | Cod sursa (job #2251094)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int Pivot(int a[], int st, int dr)
{
swap (a[(st + rand() % (dr - st + 1))], a[dr]);
int piv = a[dr], pivPos = st;
for (int i = st; i < dr; i++)
{
if (a[i] <= piv)
{
swap(a[i], a[pivPos++]);
}
}
swap(a[pivPos], a[dr]);
return pivPos;
}
void Quicksort(int a[], int st, int dr)
{
if (st < dr)
{
int index = Pivot(a, st, dr);
Quicksort(a, st, index - 1);
Quicksort(a, index + 1, dr);
}
}
int main()
{
int n, a[500001];
fin >> n;
for (int i = 1; i <= n; i++)
fin >> a[i];
Quicksort(a, 1, n);
for (int i = 1; i <= n; i++)
fout << a[i] << " ";
return 0;
}