Pagini recente » Cod sursa (job #1822947) | Cod sursa (job #2873658) | Cod sursa (job #2543018) | Cod sursa (job #2988730) | Cod sursa (job #2200888)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int i, j, n, m, a, b, c, st, dr, v[500005], nr;
int pivot(int s, int d)
{
int x = v[s + rand() % (d-s)];
s--, d++;
while(1)
{
do{
d--;
}while(v[d]>x);
do{
s++;
}while(v[s]<x);
if(s< d)
swap(v[s], v[d]);
else
return d;
}
}
void quick(int s, int d)
{
if(s<d)
{
int q = pivot(s,d);
quick(s,q);
quick(q+1,d);
}
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
quick(1, n);
for(int i = 1; i <= n; i++)
fout << v[i] << " ";
return 0;
}