Ilustrados comunidad mundial educativa
Inicio | Escribenos
User: Pass: Recordar ó (Registrate!)

| !Publicar Articulo¡

Ordenamiento de arreglos por el Método de la Burbuja Simple. Burbuja Doble y Burbuja Triple

Resumen: El código de este programa está desarrollado en Microsoft Visual C++ 2005. El usuario deberá asignar variables a cada uno de los Edit Control, desde m_a1 hasta m_a11 en los de arriba y desde m_b1 hasta m_b11 en los de abajo.
2,428 visitas
Rating: 0
Tell a Friend
Autor: Jaime Oswaldo Montoya Guzmán

El código de este programa está desarrollado en Microsoft Visual C++ 2005. El usuario deberá asignar variables a cada uno de los Edit Control, desde m_a1 hasta m_a11 en los de arriba y desde m_b1 hasta m_b11 en los de abajo. Para agregar variables se le da clic derecho a cada Edit Control, luego Agregar variable…, posteriormente en el Asistente para agregar variables miembro en Categoría se le cambia de Control a Value, y en Tipo de variable se le pone int para que sean enteros. Luego en Nombre de la variable se le ponen los nombres como se indicó anteriormente (de m_a1 a m_a11 y de m_b1 a m_b11).

 Posterior a ello se le da doble clic a cada uno de los botones en tiempo de diseño y se agrega el código correspondiente.

 

 ORDENAMIENTO BURBUJA SIMPLE 

void CordenamientoburbujaDlg::OnBnClickedButton1()

{

      // TODO: Agregue aquí su código de controlador de notificación de control

      #define TAMANIO 10

      int vector[TAMANIO]={4,5,3,9,2,3,1,4,8,6};

int pasadas,elemento,almacena;

      UpdateData(TRUE);

      m_a1=vector[0];

      m_a2=vector[1];

      m_a3=vector[2];

      m_a4=vector[3];

      m_a5=vector[4];

      m_a6=vector[5];

      m_a7=vector[6];

      m_a8=vector[7];

      m_a9=vector[8];

      m_a10=vector[9];

      UpdateData(FALSE);

for (pasadas=1;pasadas<TAMANIO;pasadas++){

            for(elemento=0;elemento<TAMANIO-1;elemento++){

                  if(vector[elemento]>vector[elemento+1]){

                        almacena=vector[elemento];

                        vector[elemento]=vector[elemento+1];//Declaración destructiva.

                        vector[elemento+1]=almacena;

                  }

            }

      }

      UpdateData(TRUE);

      m_b1=vector[0];

      m_b2=vector[1];

      m_b3=vector[2];

      m_b4=vector[3];

      m_b5=vector[4];

      m_b6=vector[5];

      m_b7=vector[6];

      m_b8=vector[7];

      m_b9=vector[8];

      m_b10=vector[9];

      UpdateData(FALSE);

}

 ORDENAMIENTO BURBUJA DOBLE 

void CordenamientoburbujaDlg::OnBnClickedButton2()

{

      // TODO: Agregue aquí su código de controlador de notificación de control

#define TAMANIO 10

int vector[TAMANIO]={4,5,3,9,2,3,1,4,8,6};

int pasadas,elemento,almacena;

UpdateData(TRUE);

m_a1=vector[0];

m_a2=vector[1];

m_a3=vector[2];

m_a4=vector[3];

m_a5=vector[4];

m_a6=vector[5];

m_a7=vector[6];

m_a8=vector[7];

m_a9=vector[8];

m_a10=vector[9];

UpdateData(FALSE);

for (pasadas=1;pasadas<TAMANIO/2;pasadas++){

      for(elemento=0;elemento<TAMANIO-1;elemento++){

            if(vector[elemento]>vector[elemento+1]){

                  almacena=vector[elemento];

                  vector[elemento]=vector[elemento+1];

                  vector[elemento+1]=almacena;

            }

            if(vector[TAMANIO-(elemento+1)]<vector[TAMANIO-(elemento+2)]){

                  almacena=vector[TAMANIO-(elemento+1)];

                  vector[TAMANIO-(elemento+1)]=vector[TAMANIO-(elemento+2)];

                  vector[TAMANIO-(elemento+2)]=almacena;

            }

      }

}

UpdateData(TRUE);

m_b1=vector[0];

m_b2=vector[1];

m_b3=vector[2];

m_b4=vector[3];

m_b5=vector[4];

m_b6=vector[5];

m_b7=vector[6];

m_b8=vector[7];

m_b9=vector[8];

m_b10=vector[9];

UpdateData(FALSE);

}

 ORDENAMIENTO BURBUJA TRIPLE 

void CordenamientoburbujaDlg::OnBnClickedButton3()

{

      // TODO: Agregue aquí su código de controlador de notificación de control

      #define TAMANIO 11

      int vector[TAMANIO]={4,5,3,9,2,3,1,4,8,6};

      int pasadas,elemento,menor,medio,mayor;

      UpdateData(TRUE);

      m_a1=vector[0];

      m_a2=vector[1];

      m_a3=vector[2];

      m_a4=vector[3];

      m_a5=vector[4];

      m_a6=vector[5];

      m_a7=vector[6];

      m_a8=vector[7];

      m_a9=vector[8];

      m_a10=vector[9];

      UpdateData(FALSE);

      for(pasadas=1;pasadas<TAMANIO/2;pasadas++){

            for(elemento=0;elemento<(TAMANIO-1)-(pasadas*2);elemento++){

                  if((vector[elemento]<vector[elemento+1]) && (vector[elemento]<vector[elemento+2])){//Si el primer número es el mayor de los 3.

                        menor=vector[elemento];

                        if(vector[elemento+1]<vector[elemento+2]){

                             medio=vector[elemento+1];

                             mayor=vector[elemento+2];

                        }

                        else{

                             medio=vector[elemento+2];

                             mayor=vector[elemento+1];

                        }

                  }

                  if((vector[elemento+1]<vector[elemento]) && (vector[elemento+1]<vector[elemento+2])){//Si el segundo número es el mayor de los 3.

                        menor=vector[elemento+1];

                        if(vector[elemento]<vector[elemento+2]){

                             medio=vector[elemento];

                             mayor=vector[elemento+2];

                        }

                        else{

                             medio=vector[elemento+2];

                             mayor=vector[elemento];

                        }

                  }

                  if((vector[elemento+2]<vector[elemento]) && (vector[elemento+2]<vector[elemento+1])){//Si el tercer número es el mayor de los 3.

                        menor=vector[elemento+2];

                        if(vector[elemento]<vector[elemento+1]){

                             medio=vector[elemento];

                             mayor=vector[elemento+1];

                        }

                        else{

                             medio=vector[elemento+1];

                             mayor=vector[elemento];

                        }

                  }

                  if((vector[elemento]==vector[elemento+1]) && (vector[elemento]==vector[elemento+2])){//Caso de 1,1,1 (tres iguales).

                        menor=vector[elemento];

                        medio=vector[elemento+1];

                        mayor=vector[elemento+2];

                  }

                  if((vector[elemento]==vector[elemento+1]) && (vector[elemento+2]>vector[elemento])){//Caso de 1,1,2 (dos primeros iguales y tercero mayor).

                        menor=vector[elemento];

                        medio=vector[elemento+1];

                        mayor=vector[elemento+2];

                  }

                  if((vector[elemento]==vector[elemento+2]) && (vector[elemento+1]>vector[elemento])){//Caso de 1,2,1 (primero y tercero iguales y segundo mayor).

                        menor=vector[elemento];

                        medio=vector[elemento+2];

                        mayor=vector[elemento+1];

                  }

                  if((vector[elemento+1]==vector[elemento+2]) && (vector[elemento]>vector[elemento+1])){//Caso de 2,1,1 (segundo y tercero iguales y primero mayor).

                        menor=vector[elemento+1];

                        medio=vector[elemento+2];

                        mayor=vector[elemento];

                  }

                  vector[elemento]=menor;

                  vector[elemento+1]=medio;

                  vector[elemento+2]=mayor;

            }

      }

      UpdateData(TRUE);

      m_b1=vector[0];

      m_b2=vector[1];

      m_b3=vector[2];

      m_b4=vector[3];

      m_b5=vector[4];

      m_b6=vector[5];

      m_b7=vector[6];

      m_b8=vector[7];

      m_b9=vector[8];

      m_b10=vector[9];

      UpdateData(FALSE);

}

Autor:
Jaime Oswaldo Montoya Guzmán,
Estudiante de 3er. año de Ingeniería en Sistemas Informáticos de la
Universidad Católica de Occidente (UNICO).

jaimemontoya@gmail.com

http://jaimemontoya.googlepages.com

Santa Ana, 5 de marzo de 2007
El Salvador

 

 

 

Articulos relacionados:
Programación no numérica: GRAFOS
Resumen:
Definición de Grafo. Represenatción. Algoritmo para la búsqueda de anchura. Caminos Mínimos en Grafos. Algoritmo de WARSHALL. De orientación. Topológico. Ejemplos. Gráficos.
Visual Basic - Guía del Estudiante
Resumen:
La evolución del BASIC por los años 70 fue escasa, dado el auge que tomaron en aquella época lenguajes de alto nivel como el FORTRAN y el COBOL. En 1978 se definió una no...
Lenguaje de programación para niños
Resumen:
Este programa permite que un niño aprenda a programar en lenguaje Pascal de una manera sencilla, donde solamente se utiliza un conjunto de palabras especiales, y será el ...
Introducción a la Programación en VisualFoxpro9
Resumen:
Este proyecto esta dirigido a todas aquellas personas que quieran iniciarse en el mundo de la programación estructurada y basada en objetos, en este manual de apuntes tra...
Lenguaje de programación para paginas web HTML
Resumen:
Que es el HTML. Orígenes del HTML. Creación de páginas web con lenguaje HTML. Etiquetas de párrafo. Como insertar una imagen.
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©