Pagini recente » Cod sursa (job #325240) | Cod sursa (job #1827353) | Cod sursa (job #3032788) | Cod sursa (job #69034) | Cod sursa (job #340920)
Cod sursa(job #340920)
#include <fstream>
#define Max 500001
FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");
int n,sir[Max];
void citire (){
fscanf(f,"%d",&n);
for (int i=1; i<=n; i++)
fscanf(f,"%d",&sir[i]);
fclose(f);
}
void quicksort (int v[], int stanga, int dreapta){
int i = stanga, j = dreapta, aux;
int pivot = v[(stanga + dreapta) /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--;
}
}
if (stanga < j)
quicksort (v, stanga, j);
if (i < dreapta)
quicksort (v, i, dreapta);
}
void afisare(){
for(int i=1; i<=n; i++)
fprintf(g,"%d ",sir[i]);
fclose(g);
}
int main(){
citire();
quicksort(sir,1,n);
afisare();
return 0;
}