Ordenamiento de arreglos por el método de la burbuja simple, burbuja doble y burbuja triple (página 2)
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 |