Top

Cargando cosas bonitas...

Recargar...

Ordenar array utilizando el método de la burbuja en C++


animacion-metodo-burbuja

Animación que recrea el algoritmo del método de la burbuja

Para ordenar arrays tenemos a nuestra disposición diferentes tipos de algoritmos para hacerlo. Hay lo que se llaman formas naturales de ordenación y las que no lo son. El método de la burbuja es un método de ordenación no natural para ordenar arrays. Consiste en ir recorriendo todo el array a ordenar, comparando dos elementos al mismo tiempo e intercambiándolos si no están en el lugar apropiado. Al finalizar el recorrido por todos los elementos, se determina si hubo algún cambio, y en caso afirmativo, se repite el algoritmo hasta que no haya cambio alguno.

De todas formas si quieres profundizar en el tema de algoritmos de ordenación, puedes visitar los apuntes (de mi universidad) que tengo subidos sobre ello.

El nombre que se le atribuye viene porque al hacer el intercambio, los elementos más pequeños “burbujean” de forma progresiva hasta el inicio del array, mientras que los más grandes se “hunden”. Es el algoritmo de ordenación por comparación más sencillo de implementar.

En cuanto al rendimiento, el algoritmo no destaca por su rapidez.  Es de los más pobres en rendimiento y sobre todo no es recomendable usarlo en arrays largos. Sin embargo, está bastante bien si estás empezando ya que se caracteriza por su sencillez.

En concreto el ejemplo que voy a mostrar a continuación es el código para ordenar un array de mayor a menor, sin embargo para ordenador de menor a mayor solo habría que cambiar uno de los signos que comento en el código.

 


5 Comentarios

  • luis Dice

    ayuda ocupo hacer un arreglo de ordena de mayor a menor numeros con solo el primer arreglo predeterminado

  • no me gusta programación

  • Kaio Dice

    Hola, el algoritmo que propones esta mal, en el segundo bucle siempre recorres todo el array por lo que te queda un algoritmo cuadratico.
    Deberias cambiar la j = 0, por j = i – 1, ya que asi empiezas a mirar por la continuacion de la i, todo lo de antes ya se ha ordenado.

    void ordenarArray(int v[], int n) {
    int aux;

    for (int i = 0; i< n – 1; i++) {
    for (int j = i + 1; j v[j]) {
    aux = v[i];
    v[i] = v[j];
    v[j] = aux;
    }
    }
    }
    }

    Un saludo.

  • t Dice

    #include
    int main(){

    int vec[5] ={7,2,9,15,6};
    int aux,n;
    for(int i=0; i<5; i++){
    for(int j=0;j vec[j+1]){
    aux=vec[j];
    vec[j]=vec[j+1];
    vec[j+1]=aux;
    }
    }
    }
    for(int i=0;i<5;i++){
    printf("%d",vec[i]);
    }
    return 0;

    }

  • ramon Dice

    #include
    int main(){

    int vec[5] ={7,2,9,15,6};
    int aux,n;
    for(int i=0; i<5; i++){
    for(int j=0;j vec[j+1]){
    aux=vec[j];
    vec[j]=vec[j+1];
    vec[j+1]=aux;
    }
    }
    }
    for(int i=0;i<5;i++){
    printf("%d",vec[i]);
    }
    return 0;

    }

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.