Cod sursa(job #823031)

Utilizator razvan9310FMI - Razvan Damachi razvan9310 Data 24 noiembrie 2012 15:13:22
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>

void haste(int *v, int stg, int dpt)
{
	int i=stg, j=dpt, m=v[(i+j)/2];
	while (i <= j)
	{
		while (v[i] < m) i++;
		while (v[j] > m) j--;
		if (i <= j)
		{
			v[i] ^= v[j];
			v[j] ^= v[i];
			v[i] ^= v[j];
		}
	}
	if (i < dpt) haste(v, i, dpt);
	if (j > stg) haste(v, stg, j);
}

int main()
{
	int n, *v, i;
	freopen("algsort.in", "r", stdin);
	freopen("algsort.out", "w", stdout);
	scanf("%d", &n);
	v = (int*)malloc(4*n);
	for (i=0;i<n;i++)
		scanf("%d", &v[i]);
	haste(v, 0, n-1);
	for (i=0;i<n;i++)
		printf("%d ", v[i]);
	return 0;
}