Pagini recente » Cod sursa (job #1005618) | Cod sursa (job #2784282) | Cod sursa (job #378367) | Cod sursa (job #658605) | Cod sursa (job #590897)
Cod sursa(job #590897)
// ShellSort
#include <stdio.h>
FILE *f=fopen("algsort.in", "r"), *g=fopen("algsort.out", "w");
long i, v[500001], inj, sw, n;
void citeste(void)
{
fscanf(f, "%ld", &n);
for( i=1;i<=n;i++)
fscanf(f, "%ld", &v[i]);
fclose(f);
}
void shellsort(void)
{
inj=n;
while(inj>1)
{
inj/=2;
do{
sw=0;
for( i=1;i<=n-inj;i++)
if(v[i]>v[i+inj])
{
v[i]=v[i]^v[i+inj];
v[i+inj]=v[i]^v[i+inj];
v[i]=v[i]^v[i+inj];
sw++;
}
}while(sw!=0);
}
}
void tipareste(void)
{
for(i=1;i<=n;i++)
fprintf(g, "%ld ", v[i]);
fclose(g);
}
int main()
{
citeste();
shellsort();
tipareste();
return 0;
}