Pagini recente » Cod sursa (job #1527882) | Cod sursa (job #2535200) | Cod sursa (job #2421456) | Cod sursa (job #3187952) | Cod sursa (job #651787)
Cod sursa(job #651787)
#include <stdio.h>
#include <stdlib.h>
#define MAX 500008
void quicksort(int vect[MAX],int ls,int ld);
void citeste(int v[MAX],int &n){
FILE *in=fopen("algsort.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 comp ( const void * a, const void *b){
return ( *(int*)a - *(int*)b );
}
int main(){
int vector[MAX];
int n;
citeste(vector,n);
qsort(vector,n,sizeof(int),comp);
// quicksort(vector,0,n-1);
afiseaza(vector,n);
return 0;
}