domingo, 12 de mayo de 2013

Método Burbuja de Ordenación en C/C++

A continuación se presenta el código del método de ordenación denominado BURBUJA, que nos permite ordenar las componentes de un array de mayor a menor. El método consiste en ir comparando parejas de números consecutivos del array, y si el de segundo es mayor que el primero, el primero pasa a ser el segundo y viceversa. Este proceso se realiza a lo largo de todo el array tantas veces como sea necesario hasta que no se produzcan cambio (Por eso el uso de la bandera cambios). El resultado es el array ordenado de manera descendente.

Aquí les dejo una captura del programa:

Y aquí el código:




/*METODO BURBUJA DE ORDENACIÓN*/
#include <stdio.h>

int const Tam=100;
int N,C;

void ordena(float dats[], int dim);
void imprime(float dats[], int dim);

int main(void)
{
    float datos[Tam];
    printf("Numero que vas a introducir:");scanf("%i",&N);
    for(C=1;C<=N;C++)
    {
        printf("Numero %i: ",C);scanf("%f",&datos[C]);
    }
    ordena(datos,N);
    imprime(datos,N);
    return 0;
}

void ordena(float dats[],int dim)
{
    float aux;

    int cambio=1,cont;
    while (cambio==1)
    {
        cambio=0;
        for(cont=1;cont<dim;cont++)
            if(dats[cont]<dats[cont+1]){
                aux=dats[cont];
                dats[cont]=dats[cont+1];
                dats[cont+1]=aux;
                cambio=1;
    }}
}

void imprime(float dats[], int dim)
{
    printf("\n\nEl vector ordenado de mayor a menor es el siguiente:\n");
    int cont;
    for(cont=1;cont<=dim;cont++) printf("%f\n",dats[cont]);
}


Saludos.

No hay comentarios:

Publicar un comentario