Cod sursa(job #458753)

Utilizator miculprogramatorA Cosmina - vechi miculprogramator Data 26 mai 2010 08:17:05
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>

int v[500001];
long int n, i, j;

void QSort (int p, int q)
{
	int st, dr, m, aux;
	st = p;
	dr = q;
	m = v[(p+q)/2];
	do
	{
		while (v[st] < m)
			st ++;
		while (v[dr] > m)
			dr --;
		if (st <= dr)
		{
			aux = v[st];
			v[st] = v[dr];
			v[dr] = aux;
			st ++;
			dr --;
		}
	}
	while (st <= dr);
	
	if (st < q)
		QSort (st, q);
	if (p < dr)
		QSort (p, dr);
	
}

int main ()
{
	FILE *f = fopen ("algsort.in","r");
	FILE *g = fopen ("algsort.out","w");
	fscanf (f,"%ld", &n);
	for (i=1; i<=n; ++i)
		fscanf (f,"%d", &v[i]);
	
	QSort (1, n);
	
	for (i=1; i<=n; ++i)
		fprintf (g,"%d ", v[i]);
	
	fclose(g);
	fclose(f);
	return 0;
}