elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda ejercicio java Ordenación de Vectores
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda ejercicio java Ordenación de Vectores  (Leído 3,951 veces)
Thryks

Desconectado Desconectado

Mensajes: 112



Ver Perfil
Duda ejercicio java Ordenación de Vectores
« en: 12 Marzo 2014, 12:30 pm »

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.
Código:
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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #1 en: 12 Marzo 2014, 12:38 pm »

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.htm

Tambié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


Desconectado Desconectado

Mensajes: 526



Ver Perfil WWW
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #2 en: 12 Marzo 2014, 13:15 pm »

...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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #3 en: 12 Marzo 2014, 13:48 pm »

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 Desconectado

Mensajes: 1.186


Ver Perfil
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #4 en: 12 Marzo 2014, 17:10 pm »

Te falta algo :P


Código
  1. public class MinimunScalarProduct {
  2.    public static void main (String[] args){
  3.    //Creamos el Vector
  4.    int []x = {3,2,6,4,5,8,7,9,1,10};
  5.    //Creamos las variables
  6.  
  7.    int auxiliar;
  8.    for( int cont1 = 1; cont1 < x.length; cont1 ++ ){
  9.        for( int cont2 = 0; cont2 < x.length - 1; cont2++ ) {
  10.            if ( x[ cont2 ] > x[ cont2 +1 ] ) {
  11.                auxiliar = x[ cont2 ];
  12.                x[ cont2 ] = x[ cont2 + 1 ];
  13.                x[ cont2 + 1 ] = auxiliar;
  14.            }
  15.        }
  16.    }
  17.  
  18.    for(int indice = 0; indice < x.length; indice++  )
  19.        System.out.print( x[indice] + "  " );
  20.  }
  21. }
  22.  

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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #5 en: 12 Marzo 2014, 21:24 pm »

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 Desconectado

Mensajes: 112



Ver Perfil
Re: Duda ejercicio java Ordenación de Vectores
« Respuesta #6 en: 14 Marzo 2014, 11:51 am »

Muchas gracias a todos por vuestros consejos. ;D, los tendré en cuenta.
En línea

Futuro Sysadmin
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejercicio java duda
Ejercicios
LakroMC 1 5,316 Último mensaje 2 Noviembre 2009, 20:58 pm
por leogtz
Duda con ejercicio de Java en Netbeans!
Java
KlaHavoK 8 23,604 Último mensaje 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,268 Último mensaje 15 Abril 2015, 22:52 pm
por zascarac
Duda de vectores usando interfaz con java
Programación General
Aldad 0 1,677 Último mensaje 14 Octubre 2016, 01:24 am
por Aldad
(wxMaxima) Consulta sobre enunciado de un ejercicio (conjuntos y ordenación)
Dudas Generales
class_OpenGL 0 1,978 Último mensaje 4 Noviembre 2016, 00:04 am
por class_OpenGL
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines