Cod sursa(job #276953)

Utilizator csizMocanu Calin csiz Data 11 martie 2009 13:54:19
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;

void swap(int &a,int &b){
	int t=a;a=b;b=t;
}
int part(int array[],int left, int right){
	swap(array[(left+right)/2],array[right]);
	int index=left;
	for(int i=left;i<right;i++){
		if(array[i]<=array[right]){
			swap(array[i],array[index]);
			index++;
		}
	}
	swap(array[right],array[index]);
	return index;
}
void sort(int array[],int left,int right){
	if(left<right){
		int index=part(array,left,right);
		sort(array,left,index-1);
		sort(array,index+1,right);
	}
}









int main(){
	int n;
	int v[500000];

	ifstream in("algsort.in");
	in>>n;
	for(int i=0;i<n;i++){
		in>>v[i];
	}
	in.close();
	sort(v,0,n-1);

	ofstream out("algsort.out");
	for(int i=0;i<n;i++){
		out<<v[i]<<' ';
	}
	return 0;
}