Java - Problema con Ordenamiento Burbuja en Array

 
Vista:

Problema con Ordenamiento Burbuja en Array

Publicado por Yulz (1 intervención) el 03/04/2014 08:44:56
Hola tengo un problema con un programa que me dejaron como proyecto. Miren en sí el programa es un Menú donde el Usuario elegirá el tamaño del Arreglo y después comenzará a ingresar los valores del mismo, etc.

Mi problema esta en la parte donde tengo que ordenar los elementos del Arreglo, verán cuando el Usuario termina de llenar el Arreglo se ordena sin problemas sin embargo si el Arreglo aún no está lleno es donde me aparece el problema.

Por ejemplo:

Supongamos que el Arreglo que quiere el Usuario es de 5 elementos.
Y el decide ingresar 1 por 1 los primeros 3 elementos:
4 3 2
Entonces selecciona la opción para ordenar el arreglo y quedaría algo así:
2 3 4
Pero entonces ingresa otro elemento para el Arreglo, digamos el número 1 y muestra lo siguiente:
2 3 4 1
Entonces al momento de que el Usuario vuelve a seleccionar la opción para ordenar le queda esto:
2 3 1 4
Y yo lo que quiero que quede es esto:
1 2 3 4

¿Si me explico correctamente?

Este es mi código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
case "C":
while(flag == false)
{
    flag = true;
    if(indice < n)
    {
        for(int ctrl = 0; ctrl < indice-1 && ctrl < n-1; ctrl++)
        {
            if(original[ctrl] > original[ctrl+1])
            {
                help = original[ctrl];
                original[ctrl] = original[ctrl+1];
                original[ctrl+1] = help;
                flag = false;
            }
        }
        break;
    }
    else if(indice == n)
    {
        for(int ctrl = 0; ctrl < n-1; ctrl++)
        {
            if(original[ctrl] > original[ctrl+1])
            {
                help = original[ctrl];
                original[ctrl] = original[ctrl+1];
                original[ctrl+1] = help;
                flag = false;
            }
        }
    }
}

Quiero aclarar que estoy usando un Switch para el Menú. Ojalá me puedan ayudar, estoy desesperado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Borja

Problema con Ordenamiento Burbuja en Array

Publicado por Borja (23 intervenciones) el 03/04/2014 22:33:24
El problema es en que la ordenación la haces del inicio del vector hacia el final. Es decir, que lo que hace es mover los elementos mas grandes hacia su vecina inmediato por la derecha. Esto hará que al llegar al 4 te das cuenta que es más grande que el 1 (que es quien lo sigue) entonces los intercambia.

creo que la solución es que la ordenación se haga desde el final del vector hacia delante, ya que los elementos siempre se añaden al final.

espero haberme explicado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar