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,856 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 visual con C++
Resumen:
¿Que es C++?. ¿Que es la Programación Orientada a Objetos?. El modelo de programación Windows. El concepto de proyecto (workspace). Posibilidades de programación. Filosof...
Creación de una base de datos - Oracle
Resumen:
Requerimentos del Sistema. Especificación de parámetros del fichero INIT.ORA. Ejecución y Creación de la Base de datos.
Tutorial de Programación
Resumen:
Introducción al Visual Basic. Conceptos básicos de programación cliente/servidor. Troyanos. Comenzando a programar con Visual Basic.
Manual Teórico Práctico de Visual FoxPro 6.0
Resumen:
Bases de datos. Programación. Formularios. Informes. En este manual daremos a conocer al estudiante el lenguaje de programación Visual Fox Pro 6.0. Se pretende familiariz...
Creación y Manipulación de Pilas con Punteros en Microsoft Visual C++ 2005
Resumen:
Este programa permite crear pilas para posteriormente agregar o eliminar nodos a la pila creada. Los nodos que se crean siempre se ubican en la parte superior de la pila....
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©