Java - necesito invertir un vector

 
Vista:
sin imagen de perfil

necesito invertir un vector

Publicado por Diana (8 intervenciones) el 18/07/2017 07:26:44
Buenas, necesito invertir un vector. Pero el código que cree no funciona y no entiendo porque, ya no se que hacer.
Este es el código:

1
2
3
4
5
6
7
8
9
public int [] invertir (int [] vector){
    int aux;
    for (int i = 0; i <= (vector.length-1)/2; i++) {
        aux = vector [i];
        vector [i] = vector [(vector.length-1)-i];
        vector [(vector.length-1)-i] = aux;
    }
    return vector;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil

Vectores Java

Publicado por Diana (8 intervenciones) el 18/07/2017 19:01:16
Que raro, el vector que me da no lo invierte, sino que pone los valores de forma aleatoria
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 Jose
Val: 130
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

necesito invertir un vector

Publicado por Jose (46 intervenciones) el 18/07/2017 19:05:12
pues como te dijo xve, el codigo funciona perfecto cual es el problema?


solo una anotación en mi humilde opinion, si vas a construir una función que
te retorne el vector invertido del que pasas por parámetro, el parámetro debería quedar sin cambios.

el siguiente trozo hace exactamente lo tuyo, solo que no modifica el vector que pasas por parámetro.
si no que crea uno nuevo.

La utilidad de este, es que te quedas con el vector original y el invertido.

1
2
3
4
5
6
7
8
9
10
11
public int [] invertir (int [] vector){
    int aux;
    int[] vectorCopy=new int[vector.length];
    for (int i = 0; i <= (vector.length-1)/2; i++) {
        aux = vector [i];
        vectorCopy[i]= vector [(vector.length-1)-i];
        vectorCopy [(vector.length-1)-i]=aux;
 
    }
    return vectorCopy;
}

bueno quedamos a la espera de tus respuesta, para que nos especifiques uno poco más el error que te da.

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

necesito invertir un vector

Publicado por Diana (8 intervenciones) el 18/07/2017 21:55:07
Esto es lo que pasa, el vector que me regresa no se el vector invertido.
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 Jose
Val: 130
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

necesito invertir un vector

Publicado por Jose (46 intervenciones) el 18/07/2017 23:26:05
hola,
podías pasar el código, de como llamas a este método?, porque el error no esta en el método, así que el único lugar que toca ver es el código donde lo invocas.

porque la verdad probé tu método y funciona correctamente, con la curiosidad que te decía antes, tu ahí cambias, el vector que envías como parámetro se invierte, destruyendo por así decirlo el vector con el orden original.

leí tu otro post que dices, que la respuesta te lo da en forma aleatoria, nos podrías poner la entrada y salida que da tu metodo?
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

necesito invertir un vector

Publicado por Diana (8 intervenciones) el 19/07/2017 00:58:42
Aqui es donde lo llamo:

construccion cons = new construccion ();

int [] [] vec = {1, 2, 3, 4, 5};

movimientos move = new movimientos ();

Int [] [] vecNew = move.invertir(vec);

System.out.println(cons.mostrar(vecNew));
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 Jose
Val: 130
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

necesito invertir un vector

Publicado por Jose (46 intervenciones) el 19/07/2017 02:11:52
hola diana,
pues parece todo correcto, pues el único lugar donde la podrías estar liando .
es en el método mostrar.

me gustaria saber que es lo que te imprime esto:
System.out.println(cons.mostrar(vecNew));

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

necesito invertir un vector

Publicado por Diana (8 intervenciones) el 19/07/2017 02:14:32
Lo que hace esa linea es acumular los valores del vector en un String para imprimirlo.
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 Jose
Val: 130
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

necesito invertir un vector

Publicado por Jose (46 intervenciones) el 19/07/2017 17:50:16
Me refería, a como lo haces, porque es el único lugar donde podrías estar distorsionando el vector.
podrías pegar ese código aquí de tu método mostrar.

tambien puedes probar, el código que te dejaron de imprimir el vector leyéndolo de forma inversa.

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
Imágen de perfil de Miguel Ángel

necesito invertir un vector

Publicado por Miguel Ángel (5 intervenciones) el 19/07/2017 14:27:09
Un consejo, en lugar de recorrer el vector desde el primer numero. Recorrelo a partir del último. Más que nada para facilitarlo.
for (int i = vector.length()-1; i<=0 ; i --);

luego simplemente metes los valores de tu vector original en uno que hayas creado anteriormente como copia.

El ultimo elemento del original, es el primero de tu copia.
El penultimo elemento del original, es el segundo de tu copia.
El antepenultimo elemento del original es el tercero de tu copia.

[ ... ]

Y así sucesivamente.
Creo que estas complicando algo demasiado. Bien es cierto que no trato mucho con vectores, pero creo que es algo parecido a los arrays a la hora de recorrerlos. Si he cometido algún error, perdóname jajaja sólo intento ayudar.

Espero haberte ayudado. Si no te funciona direcctamente trabajare el código
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: 755
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

necesito invertir un vector

Publicado por Yamil Bracho (2315 intervenciones) el 19/07/2017 18:33:03
Si, puedes hacer algo como :

1
2
3
4
5
6
7
8
9
10
public int [] invertir (int [] vector){
   int size = vector.length;
   int [] result = new int[size]
 
   for (int i = size -1, j = 0; i >= 0; i--, j++) {
      result[j] = vector[i];
   }
 
   return result;
}
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

necesito invertir un vector

Publicado por Carlos Alberto Varela (2 intervenciones) el 05/02/2020 14:57:00
Es posible invertir un vector a partir del mismo, es decir, un solo recorrido desde los extremos hacia el centro invierto los datos en las respectivas posiciones.

Comparto un link con el programa en Java para invertir un vector:
https://tutorias.co/arrays-java-invertir-un-vector/
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

necesito invertir un vector

Publicado por LedPop (1 intervención) el 23/11/2019 17:06:15
Hola, no se si llegarás a leer esto porque ya ha pasado un buen tiempo desde que escribiste aquí, pero por intentarlo no pierdo nada.
¿Me podrías explicar por favor por qué en el for la i es <=0 ?
Por cierto, tengo entendido que cuando pones v.length-1 haces referencia al penúltimo elemento del vector (corrígeme si me equivoco)
Muchas gracias y un saludo!!
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

necesito invertir un vector

Publicado por Billy Joel (875 intervenciones) el 23/11/2019 18:10:46
Supongamos que un vector entero de 4 elementos:
1
int [] vector = {4,6,3,1};

Los valores de las posiciones serían:
vector[0] = 4;
vector[1] = 6;
vector[2] = 3;
vector[3] = 1;

Entonces <=0 es una condición que posiblemente se esté utilizando en un for

Si tienes alguna duda solo escribe...

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
0
Comentar