Cod sursa(job #780393)

Utilizator idomiralinIdomir Alin idomiralin Data 20 august 2012 14:40:00
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
# include <cstdio>

using namespace std;

int a[500005], piv, aux;
void quick(int st, int dr)
{int i, j;
     
     i = st; j = dr; piv = a[(st + dr) / 2];
     while (i <= j)
     { 
          while (a[i] < piv) i++;    
          while (a[j] > piv) j--;
          
          if (i <= j)
          {
                   aux = a[i];
                   a[i] = a[j];
                   a[j] = aux;
                   i++; j--;
                   }
          }
         
     if (st < j) quick(st, j);
     if (i < dr) quick(i, dr);
}    
     
int main()
{int i, n;
    
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    
    scanf("%d",&n);
    
    for (i = 1; i <= n; i++)
        scanf("%d",&a[i]);
        
    quick(1,n);
    
    for (i = 1; i <= n; i++)
        printf("%d ",a[i]);
        
return 0;
}