bubble sort ascendente y descendente en un solo codigo

Iniciado por Paul Young, 4 Marzo 2016, 01:29 AM

0 Miembros y 1 Visitante están viendo este tema.

Paul Young

pues q no se como hacer que funcione el codigo y que las dos opciones funcionen....haber si alguien me puede ayudar, mientras seguire googleando

int main()
{
//declarando arreglo y contadores
int arreglo[3];
int i,j,temp;

cout<<"Ingrese los numeros a ordenar \n"<<endl;
{
for (i = 0; i < 3; i++)
{
cout<<i+1<<" -> ";
cin>>arreglo[i];
cout<<endl;
}
}
for (i = 0; i < 3; i++)
{
for (j = i + 1; j < 3; j++)
{
if (arreglo[j] < arreglo[i])
{
temp=arreglo[j];
arreglo[j]=arreglo[i];
arreglo[i]=arreglo[j];
arreglo[i]=temp;
}
}
}
for (i = 0; i < 3; i++)
{
cout<<arreglo[i]<<" ";
}


//alreves
cout<<"Y para en orden desendente \n";
cout<<"Ingrese los numeros a ordenar\n";
{
for (i = 0; i > 3; i++)
{
cout << i + 1 << " -> ";
cin >> arreglo[i];
cout << endl;
}
}
for (i = 0; i > 3; i++)
{
for (j = i + 1; j > 3; j++)
{
if (arreglo[j] > arreglo[i])
{
temp = arreglo[j];
arreglo[j] = arreglo[i];
arreglo[i] = arreglo[j];
arreglo[i] = temp;
}
}
}
for (i = 0; i > 3; i++)
{
cout << arreglo[i] << "\n\n ";
}


return 0;
}
Lo que sabemos es una gota de agua, lo que ignoramos es el océano
(Isaac Newton)


engel lex

lo unico que cambia en este caso es que el if sea mayor o menor, puedes usar un valor ejemplo

Código (cpp) [Seleccionar]
bool ascendente=false;

y luego en el if lo haces con and y or

Código (cpp) [Seleccionar]
if((ascendente && a>b) || (!ascendente && a<b))

el contenido del if es el mismo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Paul Young

Cita de: engel lex en  4 Marzo 2016, 01:39 AM
lo unico que cambia en este caso es que el if sea mayor o menor, puedes usar un valor ejemplo

Código (cpp) [Seleccionar]
bool ascendente=false;

y luego en el if lo haces con and y or

Código (cpp) [Seleccionar]
if((ascendente && a>b) || (!ascendente && a<b))

el contenido del if es el mismo

bueno si...eso ya esta ahi en el codigo que pegue...mas bien me refiero a que en el mismo programa lo pueda hacer

es decir que el programa los imprima de forma ascendente y despues de forma descendente
Lo que sabemos es una gota de agua, lo que ignoramos es el océano
(Isaac Newton)


engel lex

simplemente lo imprimes primero normal después de organizarlo y luego al contrario
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Paul Young

Lo que sabemos es una gota de agua, lo que ignoramos es el océano
(Isaac Newton)


engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Paul Young

Cita de: engel lex en  6 Marzo 2016, 01:54 AM
que resultado obtienes?

Lo que no entiendo es que codigo debo poner para imprimirlo inverso...

osea asi quedaria para ordenarlo de una forma...
int main()
{
//declarando arreglo y contadores
int arreglo[3];
int i,j,temp;

cout<<"Ingrese los numeros a ordenar \n"<<endl;
{
for (i = 0; i < 3; i++)
{
cout<<i+1<<" -> ";
cin>>arreglo[i];
cout<<endl;
}
}
for (i = 0; i < 3; i++)
{
for (j = i + 1; j < 3; j++)
{
if (arreglo[j] < arreglo[i])
{
temp=arreglo[j];
arreglo[j]=arreglo[i];
arreglo[i]=arreglo[j];
arreglo[i]=temp;
}
}
}
for (i = 0; i < 3; i++)
{
cout<<arreglo[i]<<" ";
}


Pero que como hacerle para que en ese mismo programa tambien lo imprima inverso el arreglo que declare...
Lo que sabemos es una gota de agua, lo que ignoramos es el océano
(Isaac Newton)


engel lex

Código (cpp) [Seleccionar]
for (i = 0; i < 3; i++)
{
 cout<<arreglo[i]<<" ";
}
for (i = 0; i < 3; i++)
{
  cout<<arreglo[2-i]<<" ";
}
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.