Cod sursa(job #589572)

Utilizator nicknameLare Nicu nickname Data 12 mai 2011 20:15:35
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <stdio.h>

using namespace std;

const int d=500001;

inline void Swap(int &a, int &b){
	int aux;
	aux=a;
	a=b;
	b=aux;
}

int Partition(int x[d], int l, int r){
	int i,j;
	int p;
	p=x[l];
	i=l;
	for (j=l+1;j<r;j++)
		if(x[j]<=p){
			i++;
			Swap(x[i],x[j]);
		}
	Swap(x[l],x[i]);
	return i;
}

void QuickSort(int x[d], int l, int r){
	int m;
	if (l<r){
		m=Partition(x,l,r);
		QuickSort(x,l,m);
		QuickSort(x,m+1,r);
	}
}

int main(){
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	int n;
	scanf("%d",&n);
	int a[d];
	for (int i=0; i<n; ++i)
		scanf("%d",a+i);
	QuickSort(a,0,n);
	for (int i=0; i<n; ++i)
		printf("%d ",a[i]);
	return 0;
}