Pagini recente » Cod sursa (job #2361819) | Cod sursa (job #158226) | Cod sursa (job #3152135) | Cod sursa (job #226919) | Cod sursa (job #535964)
Cod sursa(job #535964)
#include <stdio.h>
#include <stdlib.h>
void q_sort (int*,int,int);
void swap (int*,int,int);
int main ()
{
srand (time (NULL));
FILE *in=fopen ("algsort.in","r");
FILE *out=fopen ("algsort.out","w");
int i,n,*a;
fscanf (in,"%d",&n);
a=(int*) malloc (n*sizeof (int));
for (i=0; i<n; i++) fscanf (in,"%d",a+i);
q_sort (a,0,n);
for (i=0; i<n; i++) fprintf (out,"%d ",a[i]); fprintf (out,"\n");
return 0;
}
void q_sort (int *a,int l,int r)
{
if (r>l)
{
int i,y=l;
for (i=l; i<r-1; i++)
if (a[i]<a[r-1])
{
swap (a,i,y);
y++;
}
swap (a,y,r-1);
q_sort (a,l,y); q_sort (a,y+1,r);
}
}
void swap (int *a,int x,int y)
{
int z=a[x]; a[x]=a[y]; a[y]=z;
}