Ordenación burbuja

Iniciado por Runex, 28 Abril 2012, 01:35 AM

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

Runex

Buenas compañeros, estoy empezando otra vez con C++, me he acostumbrado a Python y se me está atascando  :-\.

Este es el código que llevo escrito:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main()
{
int array[10],x=0,acumulador,y=0,z=0;
while (x<10)
{
cin>>array[x];
x = x + 1;
}
while (y<10)
{
if (array[y]>array[y+1])
{
acumulador = array[y];
array[y] = array[y+1];
array[y+1] = acumulador;
y = y + 1;
}
}
while (z<10)
{
cout<<array[z];
               z = z + 1;
}
return 0;
}


En la primera parte, donde se introducen los 10 números para el array, a pesar de que aumento la variable de bucle, nunca para de pedir dígitos :S.

Un saludo :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

Torino10

Te dejo un código para el ordenamiento burbuja bien optimizado.
Revisalo :)

     int vec[dim], aux=0, bandera=1; //Bandera para evitar comparacion cuando ya esta ordenado
     
     for (int i=1; ((i<dim) && (bandera==1)); i++)
         {
         bandera=-1;
         for (int j=0; j<(dim-i); j++)
             {
             if (vec[j]>vec[j+1])
                {
                aux=vec[j];
                vec[j]=vec[j+1];
                vec[j+1]=aux;
                bandera=1;
                }
             }
         }
"Tanto si crees que puedes, como si crees que no puedes, estas en lo correcto"