Java - Pasar de python a java

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Pasar de python a java

Publicado por Carlos (6 intervenciones) el 06/05/2020 18:43:07
Buenos dias!

Tengo un codigo escrito en lenguaje python y quiero convertirlo a lenguaje Java pero no tengo la idea de como puedo hacerlo. Si alguien me puede colaborar, se los agradeceria!

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
def ordenamientoDeShell(unaLista):
    contadorSublistas = len(unaLista)//2
    while contadorSublistas > 0:
 
      for posicionInicio in range(contadorSublistas):
        brechaOrdenamientoPorInsercion(unaLista,posicionInicio,contadorSublistas)
 
      print("Después de los incrementos de tamaño",contadorSublistas,
                                   "La lista es",unaLista)
 
      contadorSublistas = contadorSublistas // 2
 
def brechaOrdenamientoPorInsercion(unaLista,inicio,brecha):
    for i in range(inicio+brecha,len(unaLista),brecha):
 
        valorActual = unaLista[i]
        posicion = i
 
        while posicion>=brecha and unaLista[posicion-brecha]>valorActual:
            unaLista[posicion]=unaLista[posicion-brecha]
            posicion = posicion-brecha
 
        unaLista[posicion]=valorActual
 
unaLista = [54,26,93,17,77,31,44,55,20]
ordenamientoDeShell(unaLista)
print(unaLista)
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 daenius
Val: 70
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Pasar de python a java

Publicado por daenius (20 intervenciones) el 06/05/2020 20:50:43
Buenas,

Antes de nada me gustaría saber dos cosas:
1.- ¿Qué significa el 2 comentado que aparece en varias líneas <//2>?
2.- En la línea 11 pones:
1
contadorSublistas = contadorSublistas // 2

¿Qué se supone que ha de significar eso?

Saludos.
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
sin imagen de perfil
Val: 10
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Pasar de python a java

Publicado por Carlos (6 intervenciones) el 06/05/2020 22:01:17
Hola!

<//2>

Es como se define una operador de división entera, es decir, si por ejemplo divido (3.5) entre (22) me va a devolver la parte entera del resultado (3.5 // 22 = 1)

para tu segunda pregunta

Se esta usando el metodo de ordenamiento shell en este codigo y dentro de este ordenamiento dice que n / 2 , entonces se debe hacer esa linea de codigo para que cumpla la condicion.
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

Pasar de python a java

Publicado por Costero (148 intervenciones) el 07/05/2020 00:30:35
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
33
34
35
36
37
38
import java.util.Arrays;
import java.util.List;
 
public class Ordenamiento {
    private static void ordenamientoDeShell(List<Integer> unaLista) {
        int contadorSublistas = unaLista.size() / 2;
 
        while(contadorSublistas > 0) {
            for(int i  = 0; i < contadorSublistas; ++i) {
                brechaOrdenamientoPorInsercion(unaLista, i, contadorSublistas);
                System.out.println("Después de los incrementos de tamaño" + contadorSublistas + "La lista es" + unaLista);
                contadorSublistas = contadorSublistas / 2;
            }
        }
    }
 
    private static void brechaOrdenamientoPorInsercion(List<Integer> unaLista, int inicio, int brecha) {
 
        for(int i = inicio + brecha; i < unaLista.size(); i += brecha) {
            int valorActual = unaLista.get(i);
            int posicion = i;
 
            while(posicion >= brecha && unaLista.get(posicion - brecha) > valorActual) {
                unaLista.set(posicion, unaLista.get(posicion - brecha));
                posicion = posicion - brecha;
                unaLista.set(posicion, valorActual);
            }
        }
    }
 
    public static void main(String [] args) {
        List<Integer> unaLista = Arrays.asList(new Integer[] {54, 26, 93, 17, 77, 31, 44, 55, 20});
        ordenamientoDeShell(unaLista);
        for(Integer value : unaLista) {
            System.out.print(value + ",");
        }
    }
}
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

Pasar de python a java

Publicado por Costero (148 intervenciones) el 07/05/2020 03:37:35
Usando array.


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
33
34
35
public class Ordenamiento2 {
    private static void ordenamientoDeShell(int [] unaLista) {
        int contadorSublistas = unaLista.length / 2;
 
        while(contadorSublistas > 0) {
            for(int i  = 0; i < contadorSublistas; ++i) {
                brechaOrdenamientoPorInsercion(unaLista, i, contadorSublistas);
                System.out.println("Después de los incrementos de tamaño" + contadorSublistas + "La lista es" + unaLista);
                contadorSublistas = contadorSublistas / 2;
            }
        }
    }
 
    private static void brechaOrdenamientoPorInsercion(int [] unaLista, int inicio, int brecha) {
 
        for(int i = inicio + brecha; i < unaLista.length; i += brecha) {
            int valorActual = unaLista[i];
            int posicion = i;
 
            while(posicion >= brecha && unaLista[posicion - brecha] > valorActual) {
                unaLista[posicion] = unaLista[posicion - brecha];
                posicion = posicion - brecha;
                unaLista[posicion] = valorActual;
            }
        }
    }
 
    public static void main(String [] args) {
        int [] unaLista = {54, 26, 93, 17, 77, 31, 44, 55, 20};
        ordenamientoDeShell(unaLista);
        for(Integer value : unaLista) {
            System.out.print(value + ",");
        }
    }
}
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