Cod sursa(job #1278336)

Utilizator thinkphpAdrian Statescu thinkphp Data 28 noiembrie 2014 18:53:30
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1.06 kb
/**
 *  Insertion Sort in C language for 50 cents.
 */
#include <stdio.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"
#define MAXN 500005

typedef unsigned int uint;

uint arr[ MAXN ],
     n;

//functions prototype
void read();
void insertion();
void write();

int main() {

    read();
    insertion();
    write();

  return(0);
};

void read() {

     uint i;

     freopen(FIN, "r", stdin);

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

     fclose( stdin );

};

void insertion() {

     uint i,

          j,

          temp;

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

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

         temp = arr[ i ];

         j = i - 1;

         while(j >= 0 && arr[ j ] > temp) {

               arr[ j + 1 ] = arr[ j ];

               j--; 
         }

         arr[ j + 1 ] = temp;
     }  
  
};

void write() {

     int i;

     freopen(FOUT, "w", stdout); 
 
     for(i = 0; i < n; i++) printf("%d ", arr[ i ]);

     fclose( stdout );
};