Pagini recente » Cod sursa (job #866411) | Cod sursa (job #172219) | Cod sursa (job #1679003) | Cod sursa (job #1290106) | Cod sursa (job #651780)
Cod sursa(job #651780)
#include <stdio.h>
#define MAX 500001
void quicksort(int vect[MAX],int ls,int ld);
void citeste(int v[MAX],int &n){
FILE *in=fopen("algsort.in.in","r");
fscanf(in,"%d",&n);
int i;
for(i=0;i<n;i++) fscanf(in,"%d",&v[i]);
fclose(in);
}
void interschimba(int &a, int &b){
int t;
t=a;
a=b;
b=t;
}
void quicksort(int vect[MAX],int ls,int ld){
int min = ls , max= ld;
int mijloc=vect[(ls+ld)/2];
while(min<=max){
while(vect[min]<mijloc) min++;
while(vect[max]>mijloc) max--;
if(min<=max) {
interschimba(vect[min],vect[max]);
max--;
min++;
}
}
if(ls<max) quicksort(vect,ls,max);
if(min<ld) quicksort(vect,min ,ld);
}
void afiseaza(int v[MAX],int n){
int i;
FILE *out=fopen("algsort.out","w");
for(i=0;i<n;i++) fprintf(out,"%d ",v[i]);
fprintf(out,"\n");
fclose(out);
}
int main(){
int vector[MAX];
int n;
citeste(vector,n);
quicksort(vector,0,n-1);
afiseaza(vector,n);
return 0;
}