Cod sursa(job #266849)

Utilizator free2infiltrateNezbeda Harald free2infiltrate Data 26 februarie 2009 10:33:07
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
#define nmax 500001

long int A[nmax],i,n;

int pivot(int st,int dr)
{
int s0=0,d0=-1;

while (st<dr)
{
if (A[st]>A[dr])
   {
   A[0] = A[st];
   A[st] = A[dr];
   A[dr] = A[0];

   A[0] = -s0;
   s0 = -d0;
   d0 = A[0];
   }
st+=s0;
dr+=d0;
}
return st;
}

void sort(int st,int dr)
{
if (st<dr)
{
int m = pivot(st,dr);
sort(st,m-1);
sort(m+1,dr);
}
}

int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);

scanf("%ld",&n);
for (i=1;i<=n;i++) scanf("%ld",&A[i]);

sort(1,n);

for (i=1;i<=n;i++) printf("%ld ",A[i]);

}