Cod sursa(job #380341)
| Utilizator | Data | 5 ianuarie 2010 20:19:20 | |
|---|---|---|---|
| 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],' ');
}
