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,888 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:
Análisis de Sistemas Basado en el modelo de Datos
Resumen:
Planeación, análisis, desarrollo e Implantación de sistemas. Los métodos para la creación de sistemas de procesamiento de datos están cambiando rápidamente. En la actuali...
Desarrollo de software para elaborar los cálculos de lotería
Resumen:
Antecedentes del problema. Planteamiento del problema. Análisis de los resultados. Descripción del sistema actual. Presentación del sistema propuesto. Diseño De Pantallas.
Desarrollo de software para elaborar los cálculos de lotería
Resumen:
Antecedentes del problema. Planteamiento del problema. Análisis de los resultados. Descripción del sistema actual. Presentación del sistema propuesto. Diseño De Pantallas.
Metodología OMT
Resumen:
Proceso de desarrollo de OMT. Análisis. Diseño del sistema. Mantenimiento. OMT pone énfasis en la importancia del modelo y uso de modelo para lograr una abstracción , en ...
Bases de datos
Resumen:
Archivos convencionales. Definición de Base de Datos. Componentes principales Ventajas en el uso de Bases de Datos. El sistema organizador de Base de Datos (DBMS). El adm...
Copyright © 2011 ilustrados.com, Monografias, tesis, bibliografias, educacion. Tofos los temas y publicaciones son propiedad de sus respectivos autores ©