Algoritmo de Ordenamiento Burbuja:
El algoritmo de Ordenamiento Burbuja o Bubblesort es un algoritmo que trabaja sobre un arreglo de números, tomando el ultimo elemento y comparándolo con su anterior y si hubiese cambio los ordena, se le llama burbuja por que hace las comparaciones de tal manera que asemejan a burbujas subiendo desde el fondo del agua.
El esquema de la implementacion es esta:
1° Ingresa Arreglo de números
2° La función Burbuja los ordena
3° Se Muestra el Arreglo de números
El algoritmo burbuja en su implementacion usa una variable auxiliar para hacer el intercambio en caso el dato anterior sea mayor.
Su complejidad es de 0(n^2).
Implementación de Burbuja en C++
- /*
- Name: Algoritmo de Ordenacion Burbuja
- Author: Joel Fernandez
- Date: 13/06/2014 2:41 a.m.
- Description: Implementacion de algoritmo Bubble Sort en C++
- */
- #include<iostream>
- #include<conio.h>
- #define MAX 50
- using namespace std;
- void LeerArreglo(int,float []);
- void Burbuja(int,float []);
- void MuestraArreglo(int,float []);
- int main(void)
- {
- system("color 0a");
- float Numeros[MAX];
- int n;
- cout<<"\t****************************************************\n";
- cout<<"\t*** ALGORITMO DE ORDENAMIENTO BURBUJA ***\n";
- cout<<"\t*** ---------------------------------- ***\n";
- cout<<"\t****************************************************\n\n\n";
- cout<<"\n\nNUMERO DE DATOS A LEER:"; cin>>n;
- LeerArreglo(n,Numeros); //ingreso de datos en array
- Burbuja(n,Numeros); // ordena por burbuja
- cout<<endl<<"\n\n LOS ELEMENTOS FUERON ORDENADOS \n\n"<<endl;
- MuestraArreglo(n,Numeros); //muestra array ordenado
- getch();
- return 0;
- }
- void Burbuja(int n, float x[])
- {int i,j;
- float aux;
- for(i=1; i<n; i++)
- for(j=n-1; j>=i; j--)
- if(x[j-1]>x[j])
- {aux = x[j-1];
- x[j-1]=x[j];
- x[j]=aux;
- }
- }void LeerArreglo(int n,float array[])
- { for(int i=0; i<n; i++)
- {cout<<"\n INGRESE ELEMENTO ["<<i<<"]: "; cin>>array[i];}
- }
- void MuestraArreglo(int n, float array[])
- {int i;
- for(i=0; i<n; i++)
- cout<<"["<<array[i]<<"] ";
- }
Algoritmo de Ordenamiento Burbuja Mejorado:
El algoritmo de burbuja mejorado es la optimizacion del burbuja normal, este algoritmo es igual al burbuja normal sino que tiene unas pequeñas modificaciones para evitar que sus dos for sigan recorriendo cuando los números ya están ordenados.
Para mejorar el algoritmo de burbuja usaremos una Bandera iniciada en '0' que se activara cuando detecte que hubo un cambio y pasara al valor '1' y luego con una intruccion saldremos del for.
Aqui la Implementacion del Burbuja Mejorado en C++
Espero que les sea de ayuda, y recuerden que comentar es agradecer.
SOCIALIZA ESTO →