Cod sursa(job #1229338)

Utilizator thinkphpAdrian Statescu thinkphp Data 16 septembrie 2014 23:02:36
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 1.12 kb
#include <stdio.h>
#define MAX 500010
#define FIN "algsort.in"
#define FOUT "algsort.out"

FILE *fin, *fout;
int vec[MAX],n;

void read();
void sort();
void swap(int,int);
void write();


int main() {
 
    read();

    sort(); 

    write();

    return 0;
}

void read() {

     int i;

     fin = fopen(FIN, "r");

     fscanf(fin, "%d", &n);

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

         fscanf(fin, "%d", &vec[ i ]);
     } 

     fclose( fin );  
};

void sort() {

     int i,
         j, 
         swapped;

     for(i = 0; i < n && swapped; i++) {

         swapped = 0;

         for(j = 0 ; j < n - i - 1; j++) {

             if(vec[ j ] > vec[ j + 1 ]) {

                swap(j, j + 1);

                swapped = 1;  
             }   
         }
     }      
};

void swap(int a, int b) {
 
     int temp;

     temp = vec[ a ];

     vec[ a ] = vec[ b ];

     vec[ b ] = temp;  
}

void write() {

     int i;

     fout = fopen(FOUT, "w");

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

         fprintf(fout, "%d ", vec[ i ]);
     } 

     fclose(fout);
};