Mai intai trebuie sa te autentifici.
Cod sursa(job #1726395)
| Utilizator | Data | 7 iulie 2016 21:57:16 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.72 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define nmax 500010
#define cout fout
int n;
int v[nmax];
int get_pivot(int a,int b)
{
int ii,jj;
ii=1;
jj=0;
while(a<b)
{
if(v[a]>v[b])
{
swap(v[a],v[b]);
ii=1-ii;
jj=1-jj;
}
a+=ii;
b-=jj;
}
return a;
}
void qsort(int a,int b)
{
if(b<=a) return;
int p=get_pivot(a,b);
qsort(a,p-1);
qsort(p+1,b);
}
int main()
{
int i;
fin>>n;
for(i=1;i<=n;++i)
fin>>v[i];
qsort(1,n);
for(i=1;i<=n;++i) cout<<v[i]<<' ';
return 0;
}
