Cod sursa(job #560956)

Utilizator zalmanDanci Emanuel Sebastian zalman Data 18 martie 2011 19:28:36
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
/* 
 * File:   main.cpp
 * Author: zalman
 *
 * Created on March 18, 2011, 7:19 PM
 */

#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 shellSort(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();
    shellSort();
    print();

    return 0;
}