Cod sursa(job #246083)

Utilizator cvicentiuCiorbaru Vicentiu Marian cvicentiu Data 19 ianuarie 2009 20:55:43
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <algorithm>
using namespace std;
//fstream fin ("algsort.in",ios::in);
//fstream fout("algsort.out",ios::out);
unsigned int v[500001],n;

int imparte(int st,int dr){
	bool dir=true;
	while (st<dr){
		if (v[st]>v[dr]){
			swap(v[st],v[dr]);
			dir=!dir;
		}
		if (dir) dr--; else st++;
	}
	return st;

}
void quicksort(int st,int dr){
	int aux;
	if (st<dr){
		aux=imparte(st,dr);
		quicksort(st,aux-1);
		quicksort(aux+1,dr);
	}
}

int main(){
	freopen ("algsort.in","r",stdin);   
    freopen ("algsort.out","w",stdout);   
    scanf("%ld",&n);   
    for (int i=1;i<=n;++i)   
        scanf("%ld",&v[i]);

	
		quicksort(1,n);
	for(int i=1;i<=n;++i)
		printf("%ld ",v[i]);   
	
}