Cod sursa(job #762907)

Utilizator ioana26Ioana Andronescu ioana26 Data 30 iunie 2012 15:00:23
Problema Sortare prin comparare Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 0.89 kb
/*
Algoritm de sortare prin comparare - QuickSort.
*/

#include <stdio.h>
#include <stdlib.h>
 
#define MAX     500000 
int numere[MAX];

void quicksort (int start, int stop) {
	int i = start - 1;
	int j = stop;
    int temp = numere[(i + j) >> 1];

    do {
        while (numere[i] < temp)
            i++;
        while (numere[j] > temp)
            j--;
        if (i <= j) {
            int aux = numere[i];
            numere[i] = numere[j];
            numere[j] = aux;
            i++;
            j--;
        }
    } while (i <= j);
    if (start < j)
        quicksort(start, j);
    if (i < stop)
        quicksort(i, stop);
}
 
int main () {
	int n;
	int i;

    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);

	scanf("%d", &n);
	for (i = 0; i < n; i++)
		scanf("%d", &numere[i]);
	quicksort(0, n - 1);
	for (i = 0; i < n; i++)
		printf("%d ", numere[i]);
	return 0;
}