Ordenamiento de arreglos por el método de la burbuja simple, burbuja doble y burbuja triple (página 2)
Enviado por jaimemontoya
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).
Santa Ana, 5 de marzo de 2007
El Salvador
Página anterior | Volver al principio del trabajo | Página siguiente |