Pagini recente » Cod sursa (job #1520111) | Cod sursa (job #2661045) | Cod sursa (job #351990) | Cod sursa (job #784824) | Cod sursa (job #1815695)
#include <stdio.h>
#include <stdlib.h>
int *pivot(int *a,int n)
{
int ii=1,jj=0,aux;
int *pi=a,*pj=a+n-1;
while(pi<pj)
{
if(*pi>*pj)
{
aux=*pi;
*pi=*pj;
*pj=aux;
ii=1-ii;
jj=1-jj;
}
pi+=ii;
pj-=jj;
}
return pi;
}
void sort(int *a,int n)
{
if(n<=1) return;
int *p=pivot(a,n);
sort(a,p-a);
sort(p+1,n-1-(p-a));
}
void afis(int *a,int n)
{
for(int i=0;i<n;++i)
printf("%d ",*(a+i));
}
void read(int **a,int *n)
{
int i;
scanf("%d",n);
*a=(int*) malloc((*n)*sizeof(int));
for(i=0;i<*n;++i)scanf("%d",*a+i);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int *a,n;
read(&a,&n);
sort(a,n);
afis(a,n);
return 0;
}