Pagini recente » Cod sursa (job #1798557) | Cod sursa (job #1624275) | Cod sursa (job #2408201) | Cod sursa (job #675985) | Cod sursa (job #670301)
Cod sursa(job #670301)
#include<stdio.h>
using namespace std;
int i1,n,a[1001];
int poz(int p,int u)
{
int aux,i,j,nr;
i=p;
j=u;
nr=0;
int k=i;
while(i<=j)
{
if(nr%2==0)
{
while(a[k]<=a[j]) j--;
if(i<=j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
nr++;
k=j;
}
}
else
{
while(a[k]>=a[i]) i++;
if(i<=j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
nr++;
k=i;
}
}
}
return k;
}
void quick(int p,int u)
{
if(u-p==1)
{
if(a[p]>a[u])
{
int aux=a[p];
a[p]=a[u];
a[u]=aux;
}
}
else
if(u-p>1)
{
int k=poz(p,u);
quick(p,k-1);
quick(k+1,u);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i1=1;i1<=n;i1++)
scanf("%d",&a[i1]);
quick(1,n);
for(i1=1;i1<=n;i1++)
printf("%d\n",a[i1]);
return 0;
}