Cod sursa(job #306988)

Utilizator mirela_pMirela Popoveniuc mirela_p Data 22 aprilie 2009 17:39:04
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
//quick sort  fisier
#include<iostream>
#include<fstream>
#define NNN 500001  

using namespace std;

long n,a[NNN];  
  
void citire()  
{  
   ifstream f("algsort.in");
   f>>n;
   for(long i=1;i<=n;i++) f>>a[i];
   f.close();
}  

void quick(int left,int right)   
{  
    long st=left,dr=right,val,aux;
	val=a[(st+dr)/2];  
    do  
	{  
		while(a[st]<val)st++;  
		while(a[dr]>val)dr--;  
		if(st<=dr){aux=a[st];a[st]=a[dr];a[dr]=aux;st++;dr--;}  
    }
	while(st<=dr);  
    if(left<dr)  quick(left,dr);  
    if(right>st) quick(st,right);  
}  


void afisare()   {ofstream g("algsort.out"); for(long i=1;i<=n;i++) g<<a[i]<<" "; g.close();} 


int main()  
{  
    citire();  
    quick(1,n);  
    afisare();  
    return 0;  
}