Cod sursa(job #2490822)

Utilizator alex_HarryBabalau Alexandru alex_Harry Data 10 noiembrie 2019 23:44:01
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

int a[500005], N;

void quickSort(int left, int right) {
	int mid = (left + right) / 2, x = a[mid], aux, i = left, j = right;
	if (left >= right)
		return;
	do {
		while ((i <= j) && (a[i] < x))
			i++;
		while ((j >= i) && (a[j] > x))
			j--;
		if (i <= j) {
			aux = a[i];
			a[i] = a[j];
			a[j] = aux;
			i += 1;
			j -= 1;
		}
	} while (i <= j);
	quickSort(left, j);
	quickSort(i, right);
}

int main() {
	freopen("algsort.in", "r", stdin);
	freopen("algsort.out", "w", stdout);
	scanf("%d", &N);

	for(int i = 0; i < N; i++)
		scanf("%d", &a[i]);
	quickSort(0, N - 1);
	for (int i = 0; i < N; i++)
		printf("%d ", a[i]);
}