Cod sursa(job #589561)

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

using namespace std;

const int d=500001;

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;
	cin>>n;
	int a[d];
	for (int i=0; i<n; ++i)
		cin>>a[i];
	QuickSort(a,0,n);
	for (int i=0; i<n; ++i)
		cout<<a[i]<<" ";
	return 0;
}