Cod sursa(job #559995)

Utilizator shnakoVlad Schnakovszki shnako Data 18 martie 2011 11:40:10
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>
#define LIM 500005
FILE *f=fopen("algsort.in", "r"), *g=fopen("algsort.out", "w");
long long v[LIM], sw, n, i;

void shell()
{
	long inj;
	inj=n;
	while(inj>1)
	{
		inj/=2;	
		do
		{
			sw=0;
			for (i=1;i<=n-inj;i++)
				if (v[i]>v[i+inj])
				{
					sw=1;
					v[i]=v[i]^v[i+inj];
					v[i+inj]=v[i]^v[i+inj];
					v[i]=v[i]^v[i+inj];
				}
		}while(sw);
	}
}

void tipareste()
{
	for (i=1;i<=n;i++)
		fprintf(g, "%lld ", v[i]);
}

int main()
{
	fscanf(f, "%lld", &n);
	for (i=1;i<=n;i++)
		fscanf(f, "%lld", &v[i]);
	shell();
	tipareste();
	fclose(f);
	fclose(g);
	return 0;
}