Pagini recente » Cod sursa (job #418047) | Cod sursa (job #1532445) | Cod sursa (job #1062893) | Cod sursa (job #720565) | Cod sursa (job #2439745)
#include <bits/stdc++.h>
#define lll long long
#define pii pair<int,int>
#define pll pair<lll,lll>
#define fi first
#define se second
#define vi vector<int>
#define pb push_back
#define sz(a) (int)(a).size()
#define inf (INT_MAX/2-1)
#define infl (1LL<<61)
#define aaa system("pause");
#define dbg(x) cerr<<(#x)<<' '<<(x)<<'\n',aaa
#define dbga(x,n) cerr<<(#x)<<"[]: ";for(int _=0;_<=n;_++) cerr<<x[_]<<" ";cerr<<'\n'; aaa
using namespace std;
vi v;
ifstream fin ( "algsort.in" );
ofstream fout ( "algsort.out" );
vi operator + ( vi a, vi b )
{
for (int x: b) a.pb(x);
return a;
}
void qqsort ( vi &v )
{
int n = sz(v), mid = n / 2, amt = 0;
if (n <= 1) return;
for (int x: v) amt += (x == v[mid]);
vi sml, big, tim(amt, v[mid]);
for (int x: v)
if (x < v[mid]) sml.pb(x);
else if (x > v[mid]) big.pb(x);
qqsort (sml);
qqsort (big);
v = sml + tim + big;
}
int main ()
{
int n; fin >> n;
int i, j, z;
for (i = 0; i < n; i++ ) fin >> z, v.pb(z);
random_shuffle(v.begin(), v.end());
qqsort (v);
for (int z: v) fout << z << ' ';
fin.close(); fout.close();
return 0;
}