Cod sursa(job #1278339)

Utilizator thinkphpAdrian Statescu thinkphp Data 28 noiembrie 2014 19:03:01
Problema Sortare prin comparare Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 1.14 kb
/**
 *  Insertion Sort Algorithm for 40 points.
 */

#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
#define MAXN 500005

typedef unsigned int uint;

//declare an array and number of elements all integers
uint vec[ MAXN ],
     n;

//prototypes function
void read();
void write();
void insertsort();


int main() {

    read();
    insertsort();
    write();
 
    return(0); 
};

void read() {

     uint i;

     freopen(FIN, "r", stdin);

     scanf("%d",&n);

     for(i = 0; i < n; i++) scanf("%d", &vec[ i ]);

     fclose( stdin );
};

void write() {

     uint i;

     freopen(FOUT, "w", stdout);

     for(i = 0; i < n; i++) printf("%d ", vec[ i ]);

     fclose( stdout );
};


void insertsort() {

     uint i,

         j, 

         aux;

     for(i = 1; i < n; i++) {

         if( vec[ i ] > vec[ i - 1 ] ) continue;

         aux = vec[ i ];

         j = i - 1;

         while(j >= 0 && vec[ j ] > aux) {

              vec[ j + 1] = vec[ j ];

              j--; 
         } 

         vec[ j + 1] = aux;
     }         

};