Cod sursa(job #820792)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 21 noiembrie 2012 10:38:10
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
//
//
#include<stdio.h>
FILE *f=fopen("algsort.in","r"), *g=fopen("algsort.out","w");

long v[500000],inj,i,n,aux,sw,k;

void shell()
{
	
	inj=n;
	k=1;
	while(inj>1)
	{
		inj/=2*k;
		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,"%ld",&n);
	for(i=1;i<=n;i++)
		fscanf(f,"%ld ", &v[i]);
	
	
	shell();
	
	for(i=1;i<=n;i++)
		fprintf(g,"%ld ", v[i]);
	
	fclose(f);
	fclose(g);
	return 0;
}