Cod sursa(job #738630)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 21 aprilie 2012 10:58:17
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<fstream>
#define Nmax 500010
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");

void citire(int &n, int a[])
{
	fin>>n;
	for(int i=1;i<=n;i++)fin>>a[i];
}

void afisare(int n, int a[])
{
	for(int i=1;i<=n;i++)fout<<a[i]<<" ";
}

void qSort(int vector[],int st,int dr)
{
int aux, min, max, mijl;
mijl = vector[st+(dr-st)/2];
min = st; max = dr;
do
{
while(vector[min] < mijl) min++;
while(vector[max] > mijl) max--;
if(min <= max)
{
aux = vector[min];
vector[min++] = vector[max];
vector[max--] = aux;
}
}while(min <= max); 

if(st < max) qSort(vector,st,max);
if(dr > min) qSort(vector,min,dr);
}
int main()
{
int n,a[Nmax],i;
citire(n,a);
qSort(a,1,n);
afisare(n,a);
}