Cod sursa(job #330671)

Utilizator RaphyRafailescu Marius Raphy 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;
}