Cod sursa(job #625722)

Utilizator GrimpowRadu Andrei Grimpow Data 25 octombrie 2011 13:07:03
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
using namespace std;
int n,a[502000],i,min,j,k;

void qsort(int left, int right)
{
	int j=right;
	int i=left;
	int middle=a[(left+right)/2];
	int aux;

	do
	{
		while((a[i]<middle) && (i<n)) ++i;
		while((a[j]>middle) && (j>1)) --j;

		if (i<=j){

			aux=a[i];
			a[i]=a[j];
			a[j]=aux;
			++i;
			--j;
		}
	}
	while(i<=j);

	if (left<j)
		qsort(left,j);
	if (i<right)
	    qsort(i,right);
}




int main(){

	FILE *f=fopen("algsort.in","rt");
	FILE *g=fopen("algsort.out","wt");
	fscanf(f,"%d", &n);
	for (i=1;i<=n;++i)
		fscanf(f,"%d", &a[i]);
	qsort(1,n);
	for (i=1;i<=n;++i)
	     fprintf(g,"%d ", a[i]);
	return 0;
}