Cod sursa(job #687753)

Utilizator shnakoVlad Schnakovszki shnako Data 22 februarie 2012 18:57:37
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
// ShellSort
#include <stdio.h>
FILE *f=fopen("algsort.in", "r"), *g=fopen("algsort.out", "w");
long a[500001], n;

void citeste(void)
{
	fscanf(f, "%ld", &n);
	for(long i=0;i<n;i++)
		fscanf(f, "%ld", &a[i]);
	fclose(f);
}

void shellsort () 
{
    long h, i, j, k;
    for (h = n; h /= 2;) 
	{
        for (i = h; i < n; i++) 
		{
            k = a[i];
            for (j = i; j >= h && k < a[j - h]; j -= h)
                a[j] = a[j - h];
            a[j] = k;
        }
    }
}

void tipareste(void)
{
	for(long i=0;i<n;i++)
		fprintf(g, "%ld ", a[i]);
	fclose(g);
}

int main()
{
citeste();
shellsort();
tipareste();
return 0;
}