Cod sursa(job #682415)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 18 februarie 2012 22:58:59
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <cstdio>
#include <algorithm>
#define NMAX 500001

using namespace std;

int V[NMAX], N;

void read(void)
{
	FILE *f = fopen("algsort.in", "r");
	
	fscanf(f, "%d", &N);
	for(int i = 1; i <= N; ++i)
		fscanf(f, "%d", &V[i]);
	
	fclose(f);
}

void sort(void)
{
	int inj = N;
	bool sw;
	
	while( inj > 1 )
	{
		inj /= 2;
		do
		{
			sw = 1;
			for(int i = 1; i <= N - inj; ++i)
				if( V[i] > V[i + inj] )
					swap(V[i], V[i+inj]), sw = 0;
		}while(!sw);
	}
}

void print(void)
{
	FILE *g = fopen("algsort.out", "w");
	
	for(int i = 1; i <= N; ++i)
		fprintf(g, "%d ", V[i]);
	
	fclose(g);
}

int main(void)
{
	read();
	sort();
	print();
	
	return 0;
}