Cod sursa(job #2265225)

Utilizator thinkphpAdrian Statescu thinkphp Data 20 octombrie 2018 20:39:44
Problema Sortare prin comparare Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <stdio.h>
#include <malloc.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"

typedef void (*fnPtr)(int*,int);

void bubblesort(int*p, int n) {

     int finished = 0, 
         swapped,
         size = n,
         i;

 while( !finished ) {

     for(i = 0; i < size - 1; ++i) {
 
         swapped = 0;

         if(p[i] > p[i+1]) {

            int tmp = p[i];
                p[i] = p[i+1];
                p[i+1] = tmp;
                swapped = 1;   
         }

     }       

     if(swapped) size--; else finished = 1; 
}

};

int main() {

    int i, n, *p;

    fnPtr s = bubblesort;

    freopen(FIN, "r", stdin);

    freopen(FOUT, "w", stdout);

    scanf("%d", &n);

    p = (int*)malloc(sizeof(int) * n);

    for(i = 0; i < n; ++i) scanf("%d", p + i);   

    s(p, n); 

    for(i = 0; i < n; ++i) printf("%d ", *(p + i));

return(0);
}