Cod sursa(job #959932)

Utilizator AplayLazar Laurentiu Aplay Data 9 iunie 2013 14:01:33
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
int n, a[500001];

void insertie_binara()
{
int i, j, stanga, dreapta, m, aux;
    for(i=1 ; i < n; i++)
    {
        aux=a[i];
        stanga = 0;
        dreapta = i - 1;
        while(stanga <= dreapta) {
            m = (stanga+dreapta) / 2;
            if(a[m] > aux) dreapta = m-1;
            else stanga = m+1;
        }
        for(j= i-1 ; j >= stanga; j--)
            a[j+1] = a[j];
        a[stanga] = aux;
    }
}

int main ()
{
    FILE *f = fopen("algsort.in", "r");
    fscanf(f, "%d", &n);
    for(int i = 0; i < n; ++i) fscanf(f, "%d", &a[i]);
    fclose(f);
    insertie_binara();
    f = fopen("algsort.out", "w");
    for(int i = 0; i < n; ++i) fprintf(f, "%d ", a[i]);
}