Cod sursa(job #1019384)
Utilizator | Data | 30 octombrie 2013 23:56:05 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.85 kb |
#include "stdio.h"
#include "stdlib.h"
int v[500001],n;
void qs(int s,int d)
{
if(s<d){
int aux;
int i=s;
int j=d;
int pivot = v[(s+d)/2];
while(i<=j){
while(v[i]<pivot){
i++;
}
while(v[j]>pivot){
j--;
}
if(i<=j){
aux=v[i];
v[i]=v[j];
v[j]=aux;
i++;
j--;
}
}
qs(s,j);
qs(i,d);
}
}
int main()
{
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
scanf("%d", &n);
int i;
for (i=0; i<n; i++){
scanf("%d", &v[i]);
}
qs(0, n-1);
for (i=0; i<n; i++){
printf("%d ", v[i]);
}
return 0;
}