Pagini recente » Cod sursa (job #415591) | Cod sursa (job #1286705) | Cod sursa (job #1509939) | Cod sursa (job #879117) | Cod sursa (job #751684)
Cod sursa(job #751684)
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define dim 500010
FILE*f=fopen("algsort.in","r");
FILE*g=fopen("algsort.out","w");
int V[dim],n,aux,ii,jj,i,j;
int poz(int st,int dr){
i=st,j=dr;
ii=0,jj=-1;
int x=rand()%(dr-st)+st;
aux=V[x];
V[x]=V[st];
V[st]=aux;
while(i!=j){
if(V[i]>V[j]){
aux=V[i];
V[i]=V[j];
V[j]=aux;
aux=ii;
ii=-jj;
jj=-aux;
}
i+=ii;j+=jj;
}
return i;
}
void quick(int st,int dr){
int p;
if(st<dr){
p=poz(st,dr);
quick(st,p-1);
quick(p+1,dr);
}
}
int main(){
srand(time(0));
int i;
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&V[i]);
quick(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%d ",V[i]);
return 0;
}