Pagini recente » Cod sursa (job #389139) | Cod sursa (job #1379116) | Cod sursa (job #2971777) | Cod sursa (job #924261) | Cod sursa (job #434269)
Cod sursa(job #434269)
#include<iostream.h>
#include<fstream.h>
long int a[500001],n;
int diva (int,int);
int diva (int p,int q)
{
int st=p,dr=q,x=a[p];
while (st<dr)
{
while (st<dr&&a[dr]>=x) dr--;
a[st]=a[dr];
while (st<dr && a[st]<=x) st++;
a[dr]=a[st];
}
a[st]=x;
return st;
}
void qs (int p, int q)
{
int m=diva(p,q);
if (m-1>p) qs(p,m-1);
if (m+1<q) qs(m+1,q);
}
int main()
{
int i;
fstream f,g;
f.open("algsort.in",ios::in);
g.open("algsort.out",ios::out);
f>>n;
for (i=0;i<n;i++)
f>>a[i];
qs (0,n-1);
for (i=0;i<n;i++)
g<<a[i]<<" ";
}