Cod sursa(job #394521)

Utilizator MciprianMMciprianM MciprianM Data 11 februarie 2010 07:46:12
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#include<algorithm>
using namespace std;
int a[500009];
void swap(int& a, int& b){
	int aux;
	aux=a;a=b;b=aux;
}
int partitie(int st, int dr){
	int p, pos, k, i;
	srand(time(NULL));
	p=((rand()%(dr-st+1))+st);
	k=a[p];	pos=st;
	swap(a[pos], a[p]);
	for(i=st+1;i<=dr;i++)
		if(a[i]<=k)
			swap(a[++pos],a[i]);
	swap(a[pos],a[st]);
	return pos;
}
void quisort(int st, int dr){
	if(st<dr){
		int m=partitie(st, dr);
		quisort(st, m-1);
		quisort(m+1, dr);
	}
}
int main(){
	int n, i;
	ifstream f("algsort.in");
	ofstream g("algsort.out");
	f>>n;
	for(i=0;i<n;i++)
		f>>a[i];
	//quisort(0, n-1,0);
	sort(a, a+n);
	for(i=0;i<n;i++)
		g<<a[i]<<' ';
	g<<'\n';
	return 0;
}