Pagini recente » Cod sursa (job #2593472) | Statistici Pinzaru Liviu-Vasile (pinzaruliviu) | Cod sursa (job #1710717) | Cod sursa (job #239532) | Cod sursa (job #872227)
Cod sursa(job #872227)
#include<stdio.h>
#define Nmax 500002
using namespace std;
int n;
int a[Nmax];
int sel(int s,int f)
{
int i,j,di,dj,aux;
i=s; j=f; di=1; dj=0;
while(i<j)
{
if(a[i]>a[j])
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
di=1-di;
dj=1-dj;
}
i=i+di;
j=j-dj;
}
return i;
}
void qs(int s,int f)
{
int m;
if(s<f)
{
m=sel(s,f);
qs(s,m-1);
qs(m+1,f);
}
}
void rezolv()
{
int i;
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&a[i]);
qs(1,n);
//qs(0,n-1);
for(i=1;i<=n;++i)
printf("%d ",a[i]);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
rezolv();
fclose(stdin);
fclose(stdout);
return 0;
}