Cod sursa(job #560004)

Utilizator shnakoVlad Schnakovszki shnako Data 18 martie 2011 11:47:11
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 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, aux;

inline void swap(long long &a, long long &b)
{
	long long aux;
	aux=a;
	a=b;
	b=aux;
}

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;
					swap(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;
}