Mai intai trebuie sa te autentifici.
Cod sursa(job #330671)
Utilizator | Data | 11 iulie 2009 10:28:10 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 40 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.78 kb |
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void quicksort (int *a, int left, int right)
{
int i=left, j=right, h;
int x=a[left];
do
{
while (a[i]<x) i++;
while (a[j]>x) j--;
if (i<=j)
{
h=a[i]; a[i]=a[j]; a[j]=h;
i++; j--;
}
} while (i<=j);
if (left<j) quicksort(a, left, j);
if (i<right) quicksort(a, i, right);
}
int main()
{
FILE *in, *out;
int n,i;
int *a;
in = fopen("algsort.in","r");
out = fopen("algsort.out","w");
fscanf(in,"%d",&n);
a=(int*)malloc((n+1)*sizeof(int));
for (i=0; i<n;i++)
fscanf(in,"%d ",(a+i));
quicksort(a,0,n-1);
for (i=0; i<n;i++)
fprintf(out,"%d ",a[i]);
fclose(in);
fclose(out);
return 0;
}