metodo de la burbuja

jjj
11 de Febrero del 2005
porfavor alguien me puede dar informacion referente sobre el metodo de la burbuja

chikis el grotesco
11 de Febrero del 2005
NESECITO UN PROGRAMA CON EL METODO DE LA BURBUJA QUE ORDENE EL MAYOR ENMEDIO Y LOS MENORES A LOS LADOS POR EJEMPLO

125037869

1357986420

Asi deberia de quedar por favor diganme como se hace.. por favor ='( lo nesecito para mañana ='( buaaaaaaaaaaaaaaa es tarea para mi calificacion y no se nada POR FAVOR MANDENME EL CODIGO GRACIAS DE ANTEMANO

cindy
11 de Febrero del 2005
por favor quiero la respuesta de eso

juan esteban ospina
11 de Febrero del 2005
AHI TE MANDO UN CODIGO EN CUAL PODRAS SABER LO QUE NECESITAS CON RESPECTO A LA BURBUJA. SI NECESITAS AYUDA CON ALGO SOBRE ESTE TEMA, ESCRIBAME.


#include<iostream.h>
#include<conio.h>
//*********************************************
//prototipos
//*********************************************
void leer_vector(int v[], int&n);
void mostrar_vector(int v[], int&n);
void leer_matriz(int m[][6],int&nf,int&nc);
void mostrar_matriz(int m[][6],int&nf,int&nc);
void ordenburbuja(int &n,int v[]);
void caritas();
void presione();
//*********************************************
//funcion sumav:suma los valores de un vector
//*********************************************
int sumav(int v[],int&n)
{
int i, acusuma;
acusuma=0;
for(i=1;i<=n;i++)
{
acusuma=acusuma+v[i];
}
return acusuma;
}

//*****************************
//procedimiento: leer vector
//*****************************
void leer_vector (int v[],int&n)
{
clrscr();
caritas();
int i;
cout<<endl<<endl<<endl<<"n entrar tama¤o del vector: ";
cin>>n;
for (i=1;i<=n;i++)
{
cout<<"v["<<i<<"]=";
cin>>v[i];
cout<<endl;
}
}


//***********************************************
//procedimiento: mostrar vector
//***********************************************
void mostrar_vector(int v[], int&n)
{
int i;
cout<<"vector v leido: "<<endl;
for(i=1;i<=n;i++)
{
cout<<"v["<<i<<"]="<<v[i]<<endl;
}
}


//****************************************************
//funcion sumam: Suma los componentes de una matriz
//****************************************************
int sumam(int m[][6],int&nf,int&nc)
{
int i,j,asuma;
asuma=0;
for (i=1;i<=nf;i++)
{
for (j=1;j<=nc;j++)
{
asuma=asuma+m[i][j];
}
}
return asuma;
}

//*******************************************
//procedimiento leer matriz
//*******************************************
void leer_matriz(int m[][6],int&nf, int&nc)
{
int i,j,columna;
cout<<"entrar numero de filas-> ";
cin>>nf;
cout<<"entrar numero de columnas-> ";
cin>>nc;
cout<<endl<<endl<<"Entrar uno a uno los elementos de la matriz: ";
cout<<endl;
for(i=1;i<=nf;i++)
{
columna=10;
for(j=1;j<=nc;j++)
{
gotoxy(columna,i+15);
cin>>m[i][j];
columna=columna+5;
}
}
}

//********************************************
//procedimiento mostrar matriz
//********************************************
void mostrar_matriz(int m[][6],int&nf,int&nc)
{
int i,j,columna;

for (i=1;i<=nf;i++)
{
columna=20;
for(j=1;j<=nc;j++)
{
gotoxy(columna,i+13);
cout<<m[i][j];
columna=columna+5;
}

gotoxy(10,10);
cout<<"LA MATRIZ LEIDA ES:";
}
}





//*************************************************
//procedimiento de orden por seleccion
//*************************************************
void ordenburbuja(int &n,int v[])
{
int i,j,aux;
for (i=1;i<=(n-1);i++)
{
for (j=1;j<=n-1;j++)
{
if(v[j]>v[j+1])
{
aux=v[j];
v[j]=v[j+1];
v[j+1]=aux;
}
}
}
}

/*****************************************************
Procedimiento----->Caritas.
/****************************************************/
void caritas()
{
cout<<" Juan _\|///_ _\|///_ Ramiro "<<endl;
cout<<" (` o-o ï) (` o-o ï) " <<endl;
cout<<" --ooO-(_)-Ooo-- --ooO-(_)-Ooo-- "<<endl;
}


/*****************************************************
Procedimiento----->Presione una tecla para continuar.
*****************************************************/
void presione()
{
gotoxy(3,25);
cout<<"PRESIONE CUALQUIER TECLA PARA CONTINUAR...";
getch();
}


//******************************************
//algoritmo principal
//******************************************
void main()
{
int opc;
textbackground(15);textcolor(0);clrscr();
int v[50],n,resulsuma;
int m[6][6],nf,nc,suma;
clrscr();
do
{
clrscr();
caritas();
cout<<endl<<endl<<endl<<endl<<"ttMenu de opciones"<<endl;
cout<<"tt================";
cout<<"n1) Crear un vector nuevo.";
cout<<"n2) Mostrar la suma de los elementos del vector.";
cout<<"n3) Mostrar el vector leido.";
cout<<"n4) Crar una matriz.";
cout<<"n5) Mostrar la suma de los elementos del vector.";
cout<<"n6) Mostrar la matriz leida.";
cout<<"n7) Ordenar el vector ascendentemente.";
cout<<"n8) Inserta un elemento al vector.";
cout<<"n9) Borra un elemento del vector.";
cout<<"n100) Salir de la apliccion.";
cout<<endl<<endl<<"nSeleccione una opcion:";cin>>opc;
switch(opc)
{
case 1: leer_vector(v,n);presione();break;
case 2: clrscr();caritas();cout<<endl;resulsuma=sumav(v,n);
gotoxy(23,14);cout<<"suma de los valores del vector:";
cout<<resulsuma;
presione();break;
case 3: clrscr();caritas();gotoxy(10,10);mostrar_vector(v,n);
presione();break;
case 4: clrscr();caritas();cout<<endl<<endl<<endl<<endl;
leer_matriz(m,nf,nc);presione();break;
case 5: clrscr();caritas();suma=sumam(m,nf,nc);gotoxy(15,14);
cout<<"la suma de los valores de la matriz es:"<<suma<<endl;
presione();break;
case 6: clrscr();caritas();mostrar_matriz (m,nf,nc);presione();break;
case 7: clrscr();caritas();gotoxy(5,10);cout<<"VECTOR ORDENADO.";
ordenburbuja(n,v);presione();break;
}
}
while(opc!=100);
clrscr(); caritas();
cout<<"nPrograma Elaborado por:";
cout<<endl<<endl<<endl<<"Juan Esteban Ospina Herera y Ramiro Antonio Montoya Tabares.";
getch();
}







xnomad
11 de Febrero del 2005
el metodo de la bubuja o burbujeo, es un metodo de ordenamiento repetitivo que, como el nombre lo dice, reordena "burbujeando" los datos. Como las burbujas suben en el liquido.

el pseudocódigo para el burbujeo en un vecto o array es:

mientras no termino hacer
{
termino=true;
para i=1 hasta tamaño-1 hacer
{
si a[i] > a[i+1] entonces
{
auxiliar=a[i];
a[i]= a[i+1];
a[i+1] = auxiliar;
termino=false;
}//finsi
}//finpara
}//finmientras

Si tenes mas dudas, mandame un e-mail.