Autor
|
Tema: Duda ejercicio java Ordenación de Vectores (Leído 4,182 veces)
|
Thryks
Desconectado
Mensajes: 112
|
Buenas, tengo una duda con el código de un programa que estoy haciendo para ordenar vectores, verán cuando ejecuto el programa, parece que los ordena correctamente pero el primer número no lo ordena y me gustaría saber porque, se que tiene que ver con la inicialización de la variable cont1 en el bucle for pero no encuentro exactamente donde está el problema por si alguien pudiera ayudarme, a continuación adjunto el código del programa en cuestión. PD: Alguna página donde poner dudas de código para que sean resueltas, lo digo para no sobrecargar mucho el foro con preguntas molestas y tontas como la mía ya que no es algo muy complejo lo que estoy preguntando y quizás alguno de vosotros se rían por la facilidad del problema. Disculpen las molestias. package operaciones;
public class MinimunScalarProduct { public static void main (String[] args){ //Creamos el Vector int []x = {3,2,6,4,5,8,7,9,1,10}; //Creamos las variables int auxiliar,cont1,cont2; //Termina cuando supera la longitud del vector. for(cont1 = 1; cont1<x.length;cont1++) { auxiliar = x[cont1]; for(cont2=cont1-1;cont2>0 && x[cont2]>auxiliar;cont2--) { x[cont2+1]=x[cont2]; x[cont2]=auxiliar; } } for(int i=0;i<x.length;i++) { System.out.println(x[i]); } } }
|
|
|
En línea
|
Futuro Sysadmin
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
hola Thryks mirando el código veo que cont1 inicia en 1, sin embargo en la iteración para visualizarlo comienzas desde 0. deberías iniciar cont al mismo valor, saludos. (agrego) deberías chequear el metodo de ordenación luego... básicamente estarías implementando el método de selección. igualmente te dejo unos links para orientarte un poco. -> http://es.wikipedia.org/wiki/Ordenamiento_por_selecci%C3%B3n-> http://es.wikipedia.org/wiki/Algoritmo_de_ordenamiento -> http://artemisa.unicauca.edu.co/~nediaz/EDDI/cap03.htmTambién en el foro tanto en java como en c++ hay post referidos al tema,en cuanto a páginas mmm no recuerdo ahora sé que había algunas... (creo que en c++ estaba c con clases o algo así, hay otra parecida para java pero se me fue ahora de la mente) aunque aquí en el foro hay muy buena predisposición, cualquier duda que tengas puntual estoy seguro que entre todos te brindarán un solución, mientras haya ganas de aprender no te preoupes en preguntar por que nadie nace sabiendo jejej un cordial saludo.
|
|
« Última modificación: 12 Marzo 2014, 12:54 pm por Gh057 »
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
egyware
|
...veo que cont1 inicia en 1, ...
No, no es eso. Lo más probable que lo puso en uno para que en la iteración más interna cont2 no sea un numero inferior a 0. Exactamente no se que hace tu código de ordenamiento, pero creo que lo tienes mal planteado. Te sugiero si solo quieres ordenar empieces utilizando un algoritmo simple como el de burbuja, entre otros. Revisando más minuciosamente (pero sin probar) creo que el problema de tu algoritmo es que en la condición del for más interno es porque tienes cont2 > 0 y talvez debe ser cont2 >= 0. Podrías hacer un seguimiento en papel pera que veas efectivamente que hace tu algoritmo y puedas repararlo. Bueno Saludos!
|
|
|
En línea
|
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
hola egyware, si vi que luego le descuenta internamente; es por eso que se nota confuso, debería analizar bien ya que la resta es posterior a la asignación ( no está como -=) por lo cual le planteaba para simplificar y mantener un orden la iniciación en cero y luego implementar en limpio un algoritmo.
a groso modo en esa condición surje el error, aunque lo interpreto como arrastre del contador; aunque obviamente sin chequear la ejecución seguramnete se me está pasando por alto otra cosa, como el tope como bien indicas. saludos!
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Te falta algo public class MinimunScalarProduct { public static void main (String[] args ){ //Creamos el Vector int []x = {3,2,6,4,5,8,7,9,1,10}; //Creamos las variables int auxiliar; for( int cont1 = 1; cont1 < x.length; cont1 ++ ){ for( int cont2 = 0; cont2 < x.length - 1; cont2++ ) { if ( x[ cont2 ] > x[ cont2 +1 ] ) { auxiliar = x[ cont2 ]; x[ cont2 ] = x[ cont2 + 1 ]; x[ cont2 + 1 ] = auxiliar; } } } for(int indice = 0; indice < x.length; indice++ ) System. out. print( x [indice ] + " " ); } }
Pero como te recomienda, trata de buscar algun método de ordenamiento. También trata de dar nombres más adecuados a tus variables (no están tan mal) en muchas ocasiones ayuda en la comprensión.
|
|
« Última modificación: 12 Marzo 2014, 17:12 pm por Darhius »
|
En línea
|
abc
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
hola Thryks, como habrás ya notado, la mayoría de los errores corresponden a errores de sintaxis, por lo cual te recomendaría que prestes atención a las indicaciones del compilador cuando intentes ejecutar un código; seguramente fueron todos indicados en la consola al contruir el proyecto, por favor tómalo como una crítica constructiva. luego cuando limpies dichos errores, se presentarán los de tiempo de ejecución, ahí es cuando entra el debugger o depurador propiamente dicho. una vez que te corra como quieres, replantéate la optimización en la lógica del algoritmo de ordenación, verás que este ejercicio te sacará muchísimas dudas y ayudará sobre todo a pensar de una manera (valga el juego de palabras!) más ordenada. saludos!
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
Thryks
Desconectado
Mensajes: 112
|
Muchas gracias a todos por vuestros consejos. , los tendré en cuenta.
|
|
|
En línea
|
Futuro Sysadmin
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ejercicio java duda
Ejercicios
|
LakroMC
|
1
|
5,536
|
2 Noviembre 2009, 20:58 pm
por leogtz
|
|
|
Duda con ejercicio de Java en Netbeans!
Java
|
KlaHavoK
|
8
|
24,202
|
6 Enero 2019, 10:29 am
por rub'n
|
|
|
Ordenación de vectores con creación de procesos.
Programación C/C++
|
zascarac
|
0
|
1,464
|
15 Abril 2015, 22:52 pm
por zascarac
|
|
|
Duda de vectores usando interfaz con java
Programación General
|
Aldad
|
0
|
1,898
|
14 Octubre 2016, 01:24 am
por Aldad
|
|
|
(wxMaxima) Consulta sobre enunciado de un ejercicio (conjuntos y ordenación)
Dudas Generales
|
class_OpenGL
|
0
|
2,206
|
4 Noviembre 2016, 00:04 am
por class_OpenGL
|
|