Pagini recente » Cod sursa (job #2964748) | Cod sursa (job #2912325) | Cod sursa (job #1504993) | Cod sursa (job #930604) | Cod sursa (job #667593)
Cod sursa(job #667593)
#include <cstdio>
void citire(int *a,int &n)
{
FILE *f=fopen("algsort.in","r");
int i;
fscanf(f,"%d\n",&n);
for(i=0;i<n;i++)
fscanf(f,"%d ",&a[i]);
}
void afisare(int *a,int &n)
{
FILE *f=fopen("algsort.out","w");
int i;
fprintf(f,"%d",a[0]);
for(i=1;i<n;i++)
fprintf(f," %d",a[i]);
}
void qsort(int *a,int min,int max)
{
int pivot=a[min],i,j,tmp;
i=min;
j=max;
if(max>min)
{
while(i<j)
{
while(a[i]<=pivot)
i++;
while(a[j]>pivot)
j--;
if(i<j)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
tmp=a[j];
a[j]=a[min];
a[min]=tmp;
qsort(a,min,j-1);
qsort(a,j+1,max);
}
}
int main()
{
int a[500000],n;
citire(a,n);
qsort(a,0,n-1);
afisare(a,n);
return 0;
}