Cod sursa(job #354540)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 8 octombrie 2009 18:24:39
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

int a[500001];
     
void sort(int l,int r)
{
     int i=l,j=r,x=a[(l+r)/2],y;
     do
     {
         while (a[i]<x) {++i;};
         while (x<a[j]) {--j;};
         if (i<=j)
         {
                y=a[i];a[i]=a[j];a[j]=y;
                ++i;--j;
         }
     }
     while (i<=j);
     if (l<j) sort(l,j);
     if (i<r) sort(i,r);
}

int main()
{
    int i,n;
    freopen("quicksort.in","r",stdin);
    freopen("quicksort.out","w",stdout);
    scanf("%d",&n);
    for (i=1;i<n+1;i++) scanf("%d",&a[i]);
    sort(1,n);
    for (i=1;i<n+1;i++) printf("%d%c",a[i],' ');
}