Cod sursa(job #820807)

Utilizator wscsprint3rIrimescu Stefan wscsprint3r Data 21 noiembrie 2012 10:47:57
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 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()
{
	int h[]={3,2,1},w,k,j;

	for(w=0;w<3;w++)
	{
	   k=h[w];
	for(i=k;i<n;i=i+k)
	{
	j=i-k;
	aux=v[i];
		while(j>=0 && v[j]>aux)
		{
		  v[j+k]=v[j];
		  j=j-k;
		}
	v[j+k]=aux;
	}


	}
}



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