Cod sursa(job #403845)

Utilizator MirceampMuresan Mircea Paul Mirceamp Data 25 februarie 2010 14:04:57
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<fstream>
#define Max 500001

using namespace std;

int a[Max],n,k;
void poz(int li,int ls)
{
	int aux,i,j,i1,j1;
	i = li;
	j = ls;
	i1 = 0;
	j1 = -1;
	while(i < j)
	{
		if(a[i] > a[j])
		{
			aux = a[i];
			a[i] = a[j];
			a[j] = aux;
			aux = i1;
			i1 = -j1;
			j1 = aux;
		}
	i = i+i1;
	j = j+j1;
	}
k = i;
}
void quicksort(int li,int ls)
{
	if(li < ls)
	{
		poz(li,ls);
		quicksort(li,k-1);
		quicksort(k+1,ls);
	}
}
int main()
{
	ifstream fin("algsort.in");
	ofstream fout("algsort.out");
int i;
fin>>n;
for(i = 1; i <= n; i++)
	fin>>a[i];
quicksort(1,n);
for(i = 1; i <= n; i++)
	fout<<a[i]<<" ";

fin.close();
fout.close();

return 0;
}