Pagini recente » Cod sursa (job #2612974) | Cod sursa (job #1636502) | Cod sursa (job #721057) | Cod sursa (job #2678093) | Cod sursa (job #1087698)
#include<cstdio>
#include<algorithm>
using namespace std;
int n,i,A[510010];
void sorteaza(int,int);
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&A[i]);
sorteaza(1,n);
for(i=1;i<=n;i++)printf("%d ",A[i]);
return 0;
}
void sorteaza(int st,int dr)
{
if(st>=dr)return;
int poz=(st+dr)/2;
int p=st,q=dr;
for(;p<q;)
{
while(A[p]<A[poz])p++;
while(A[q]>A[poz])q--;
if(p>=q)break;
if(p==poz)poz=q;
else
if(q==poz)poz=p;
int aux=A[p];
A[p]=A[q];
A[q]=aux;
}
sorteaza(st,poz-1);
sorteaza(poz+1,dr);
}