Pagini recente » Cod sursa (job #1915249) | Cod sursa (job #1145330) | Cod sursa (job #875935) | Cod sursa (job #1665841) | Cod sursa (job #1276534)
#include <cstdio>
#include <algorithm>
using namespace std;
inline void scanfvect(int v[500010],int &n)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&v[i]);
}
inline void printfvect(int v[500010],int n)
{
for(int i=1;i<=n;i++) printf("%d ",v[i]);
}
int v[500010],n;
inline void divide(int s,int d,int &m1,int &m2)
{
int is=1,id=0;
m1=s;m2=d;
while(s<=d)
{
if(v[s]>v[d])
{
swap(v[s],v[d]);swap(is,id);
m1=s;
m2=d;
}
s+=is;
d-=id;
}
}
void quicksort(int v[500010],int s,int d)
{
int m1,m2;
if(s<=d)
{
divide(s,d,m1,m2);
quicksort(v,s,m2-1);
quicksort(v,m1+1,d);
}
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanfvect(v,n);
quicksort(v,1,n);
printfvect(v,n);
}