¿Ayuda con un codigo Ordenamiento en java (consola)?
Hola primeramente se los agradesco por el tiempo que me han prestado, lo que pasa que he tratado de implementar un ordenamiento
en insercion directa... y he llegado a este codigo... asignando valores
import javax.swing.JOptionPane;
int i,j,min,k;
int cambio;
int []arr;
arr=new int[10];
String entrada;
int x,z;
for(x=0;x<arr.length;x++)
{
z=x+1;
entrada=JOptionPane.showInputDialog("ingrese valor "+z);
arr[x]=Integer.parseInt(entrada);
}
for(i=0;i<arr.length;i++)
{
min=arr[i];
k=0;
cambio=0;
for(j=i+1;j<arr.length;j++)
{
if (arr[ j ]<min)
{
min=arr[ j ];
k=j;
cambio=1;}
}
arr[ k ]=arr[ i ];
arr[ i ]=min;
}
for(x=0;x<arr.length;x++)
{
System.out.println(arr[x]);
}
}}
El problema que al ejecutarlo, por ejemplo que los numeros sean del 1 al 10...
el primer valor lo toma el 10 y luego 2,3,4,5,6,7,8.......10
y asi suele ser con cualquier tipo de numero.. quisiera que me ayudasen en ese problema por que me es de mucha importancia resolverlo ya que es para un examen...
si es que no es tanta la molestia quisiera saber como seria este codigo implementado en java consola, con sus valores respectivos... GRACIAS
int i,j,aux;
//Se da valores a los elementos del arreglo
for(i=1;i)
{// Se intenta añadir el elemento i.
aux=array[i];
for(j=i-1;j>=0;j--) // Se recorre la sublista de atrás a adelante para buscar
{ // la nueva posición del elemento i.
if(aux>array[j]) // Si se encuentra la posición:
{
array[j+1]=aux; // Colocarlo
break; // y colocar el siguiente número.
}
else // si no, sigue buscándola.
array[j+1]=array[j];
}
if(j==-1) // si se ha buscado en todas las posiciones y no se ha
encontrado la correcta
array[0]=aux; // es que la posición es al principio del todo.
}
|