Cod sursa(job #1229341)

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

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;

     freopen(FIN, "r", stdin);

     scanf("%d", &n);

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

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

     fclose( stdin );  
};

void sort() {

     int i,

         j, 

         swapped = 1;

     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;

     freopen(FOUT, "w", stdout);

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

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

     fclose(stdout);
};