Pagini recente » Diferente pentru problema/ecu intre reviziile 2 si 5 | Cod sursa (job #2139987) | Cod sursa (job #205630) | Cod sursa (job #2599170) | Cod sursa (job #266735)
Cod sursa(job #266735)
#include <stdio.h>
int *v,n;
int poz(int a,int b)
{
int t,d=0;
while(a<b)
{ if(v[a]>v[b])
{ t=v[a]; v[a]=v[b]; v[b]=t;
d=1-d;
}
a+=d; b-=1-d;
}
return a;
}
void qsort(int l,int r)
{ int k;
if(l<r)
{ k=poz(l,r);
qsort(l,k-1);
qsort(k+1,r);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
v=new int[n];
for(int i=0;i<n;i++) scanf("%d",&v[i]);
qsort(0,n-1);
for(int i=0;i<n;i++) printf("%d ",v[i]);
fclose(stdin); fclose(stdout);
return 0;
}