Java - No me funciona el método burbuja

 
Vista:
Imágen de perfil de Devastador
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Devastador (15 intervenciones) el 09/11/2020 02:23:59
Aplico el método burbuja para ordenar mediante un campo el campo y así ordenar todo el arreglo con todos lo campos, pero no funciona

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
public void arreglo(){
    int contadorhombre = 0, contadormujer = 0;
 
    for (int i =0; i < array.length; i++) {
        if (array[i].getSexo().equals("Masculino")){
             arrayhombres[contadorhombre] = array[i];
             contadorhombre++;
        }else if (array[i].getSexo().equals("Femenino")){
             arraymujeres[contadormujer] = array[i];
             contadormujer++;
        }
    }
 
    for (int j = arrayhombres.length - 1; j > 0; j--) {
        for (int k = 0; k < j; k++) {
            if (arrayhombres[k].getTiempocarrera() < arrayhombres[k + 1].getTiempocarrera()) {
                    inscritos aux = arrayhombres[k];
                    arrayhombres[k] = arrayhombres[k + 1];
                    arrayhombres[k + 1] = aux;
                }
            }
        }
    for (int j = arraymujeres.length - 1; j > 0; j--) {
        for (int k = 0; k < j; k++) {
            if (arraymujeres[k].getTiempocarrera() < arraymujeres[k + 1].getTiempocarrera()) {
                inscritos aux = arraymujeres[k];
                    arraymujeres[k] = arraymujeres[k + 1];
                    arraymujeres[k + 1] = aux;
            }
        }
    }
}
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 Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Billy Joel (876 intervenciones) el 09/11/2020 03:44:53
Pregunta: ¿Dónde declaras los arreglos arrayhombres y arraymujeres?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Devastador
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Devastador (15 intervenciones) el 09/11/2020 03:56:45
Acá en un método

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
public void arreglo(){
    int contadorhombre = 0, contadormujer = 0;
 
    for (int i =0; i < array.length; i++) {
        if (array[i].getSexo().equals("Masculino")){
             arrayhombres[contadorhombre] = array[i];
             contadorhombre++;
        }else if (array[i].getSexo().equals("Femenino")){
             arraymujeres[contadormujer] = array[i];
             contadormujer++;
        }
    }
 
    for (int j = arrayhombres.length - 1; j > 0; j--) {
        for (int k = 0; k < j; k++) {
            if (arrayhombres[k].getTiempocarrera() < arrayhombres[k + 1].getTiempocarrera()) {
                inscritos aux = arrayhombres[k];
                arrayhombres[k] = arrayhombres[k + 1];
                arrayhombres[k + 1] = aux;
            }
        }
    }
    for (int j = arraymujeres.length - 1; j > 0; j--) {
        for (int k = 0; k < j; k++) {
            if (arraymujeres[k].getTiempocarrera() < arraymujeres[k + 1].getTiempocarrera()) {
                inscritos aux = arraymujeres[k];
                arraymujeres[k] = arraymujeres[k + 1];
                arraymujeres[k + 1] = aux;
            }
        }
    }
}
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Billy Joel (876 intervenciones) el 09/11/2020 04:04:11
¿No lo veo, podrías indicar donde?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Billy Joel (876 intervenciones) el 09/11/2020 04:13:24
En este post recuerdo haberte dejado un método de ordenamiento por burbuja. El método funciona bien solo era darle un pequeño maquillaje
1
2
3
4
5
6
7
8
9
10
11
public static void ordenamientoBurbuja(inscritos[] array) {
    for (int i = array.length - 1; i > 0; i--) {
        for (int j = 0; j < i; j++) {
            if (j + 1 <= i && array[j].getTiempocarrera() < array[j + 1].getTiempocarrera()) {
                inscritos aux = array[j];
                array[j] = array[j + 1];
                array[j + 1] = aux;
            }
        }
    }
}

Como estas trabajando con arreglos y no con colecciones como List, entonces es necesario saber la cantidad con antelación para poder declarar los arreglos arrayhombres y arraymujeres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Billy Joel (876 intervenciones) el 09/11/2020 04:30:38
Con el método de ordenamientoBurbuja adecuado entonces tu método arreglo debería quedar mas o menos así
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
public void arreglo() {
    int contadorHombre = 0;
    int contadorMujer = 0;
    for (int i = 0; i < array.length; i++) {
        if (array[i].getSexo().equals("Masculino")) {
            contadorHombre++;
        } else if (array[i].getSexo().equals("Femenino")) {
            contadorMujer++;
        }
    }
 
    arrayhombres = new inscritos[contadorHombre];
    arraymujeres = new inscritos[contadorMujer];
 
    contadorHombre = 0;
    contadorMujer = 0;
 
    for (int i = 0; i < array.length; i++) {
        if (array[i].getSexo().equals("Masculino")) {
            arrayhombres[contadorHombre] = array[i];
            contadorHombre++;
        } else if (array[i].getSexo().equals("Femenino")) {
            arraymujeres [contadorMujer] = array[i];
            contadorMujer++;
        }
    }
    ordenamientoBurbuja(arrayhombres);
    ordenamientoBurbuja(arraymujeres);
}
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
Imágen de perfil de Devastador
Val: 47
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Devastador (15 intervenciones) el 09/11/2020 05:59:48
Ok, ya copie prácticamente el código en mi programa y sigue sin ordenarme absolutamente nada y no entiendo la razón por la cual no lo hace y no entiendo que debo hacer, porque ni siquiera se ordena una parte de del campo, asi queda




1
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

No me funciona el método burbuja

Publicado por Billy Joel (876 intervenciones) el 09/11/2020 15:31:30
Lo que me preocupa es que no he visto tu código completo, solo he visto parcialmente tu código y aún así no vi donde inicializabas los arrayhombres y arraymujeres. Esto me hace sospechar que estas cometiendo errores en otras partes.

Al final ya este tema tiene mucho tiempo, si quieres escríbeme y hagamos una sesión a traves de anydesk y terminemos de arreglar el código.

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar