Cod sursa(job #559983)
Utilizator | Irimescu Stefan wscsprint3r | Data | 18 martie 2011 11:29:33 |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
//
#include<stdio.h>
FILE *f=fopen("algsort.in","r"), *g=fopen("algsort.out","w");
int v[500],inj,i,n,aux,sw;
void shell()
{
inj=n;
while(inj>1)
{
inj/=2;
do{
sw=0;
for(i=1;i<=n-inj;i++)
if(v[i]>v[i+inj])
{
aux=v[i];
v[i]=v[i+inj];
v[i+inj]=aux;
sw++;
}
}while(sw!=0);
}
}
int main()
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d ", &v[i]);
shell();
for(i=1;i<=n;i++)
fprintf(g,"%d ", v[i]);
fclose(f);
fclose(g);
return 0;
}