Cod sursa(job #1624975)

Utilizator andreitulusAndrei andreitulus Data 2 martie 2016 15:36:41
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include<stdio.h>
#define nmax 500003
int x[nmax],n,i;


void read()
{
    int i;

	scanf("%d", &n);

     for(i=1;i<=n;i++)
        scanf("%d", &x[i]);
}



int poz(int p,int u)
{
    int i,i1,j,j1,aux;

     i=p; j=u;
     i1=0; j1=-1;

    while(i<j)
    {
      if(x[i]>x[j])
        {
            aux=x[i]; x[i]=x[j]; x[j]=aux;
            aux=-i1; i1=-j1; j1=aux;
        }

        i+=i1;
        j+=j1;
      }

 return i;
 }



void quicksort(int p,int u)
{
    int k;

    if(p<u)
    {
         k=poz(p,u);
        quicksort(p,k-1);
        quicksort(k+1,u);
    }
}


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

    read();

    quicksort(1,n);

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


   fclose(stdin);
    fclose(stdout);

    return 0;
}