Pagini recente » Cod sursa (job #1168172) | Cod sursa (job #2735735) | Cod sursa (job #3270434) | Cod sursa (job #2413949) | Cod sursa (job #847986)
Cod sursa(job #847986)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int poz(int a[500001], int s, int d)
{
int i,j,di,dj,aux;
i=s; j=d; di=0; dj=1;
while(i<j)
{
if(a[i]>a[j])
{
aux=a[i]; a[i]=a[j]; a[j]=aux;
di=1-di; dj=1-dj;
}
i=i+di;
j=j-dj;
}
return j;
}
void QS(int a[500001], int s, int d)
{
int p;
if(s<d)
{
p=poz(a,s,d);
QS(a,s,p-1);
QS(a,p+1,d);
}
}
void citire(int a[500001], int &n)
{
int i;
fin>>n;
for(i=1;i<=n;i++) fin>>a[i];
}
void afis(int a[500001], int n)
{
int i;
for(i=1;i<=n;i++) fout<<a[i]<<" ";
}
int main()
{
int a[500001], n;
citire(a,n);
QS(a,1,n);
afis(a,n);
return 0;
}