Cod sursa(job #1506081)

Utilizator ArkinyStoica Alex Arkiny Data 19 octombrie 2015 23:23:52
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<stdio.h>
#include<random>
#include<time.h>
FILE *in, *out;

#define MAX 500001

void inline swap(int &a, int&b)
{
	int t;
	t = a;
	a = b;
	b = t;
}

int v[MAX],N;

void quicksort(int i, int j)
{
	if (i<j)
	{
		int pivot = i + rand() % (j - i + 1);

		int s = i;
		swap(v[pivot], v[j]);
		for (int k = i;k < j;++k)
			if (v[k] < v[j])
			{
				swap(v[s], v[k]);
				++s;
			}
		swap(v[s], v[j]);

		quicksort(i, s - 1);
		quicksort(s + 1, j);
	}

}


int main()
{
	in = fopen("algsort.in", "r");
	out = fopen("algsort.out", "w");

	srand(time(NULL));

	fscanf(in, "%d", &N);

	for (int i = 1;i <= N;++i)
		fscanf(in, "%d", &v[i]);

	quicksort(1, N);
	for (int i = 1;i <= N;++i)
		fprintf(out, "%d ", v[i]);
	return 0;
}