|
| Autor |
Mensaje |
sagdec
Registrado: 08 Jun 2010 Mensajes: 4
|
Publicado: Sab 12 Jun, 2010 00:54 am
Título del mensaje: Ayuda con arreglos |
|
|
Bueno lo que quiero hacer es ordenar numeros de 3 digitos para eso la cosa es tomar las unidades del numero y ordenar el numero deacuerdo a su unidad en un arreglo, despues ordenarlos deacuerdo a su decena y al final por su centena y al final quedaran ordenados.
Bueno hasta ahorita el codigo que llevo es de sacar las unidades de los valores ingresados usando ademas lista simple pero ya no se como guardar el numero ingresado de acuerdo a su unidad.
No se si me entendieron o falta informacion o algo por el estilo pero basicamente lo que necesito es guardar el valor de los datos ingresados de acuerdo a su unidad.
| Código: | int dato[];
int n;
n=6;
dato=new int[n];
int lista[] = null;
String cade = "";
for(int i=0; i<dato.length; i++){
dato[i]=Integer.parseInt
(JOptionPane.showInputDialog(null,"Introduce un numero"));
cade = cade + dato[i] + ", ";
}
ingresar.setText(cade);
for (int i=0; i<n; i++){
int unid = dato[i] % 10;
agregarNodoLista(unid); // este metodo es de lista simple, donde me ordena los valores de las unidades de menor a mayor
mostrarLista(); // este metodo solo las muestra para saber si estoy sacando las unidades y si las muestra en orden
} |
PD: Uso netbeans para programar en java. |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 989 Ubicación: y*width+x
|
Publicado: Sab 12 Jun, 2010 02:14 am
Título del mensaje: Re: Ayuda con arreglos |
|
|
Vale, ahora parece que ya aprendiste o tienes noción del método Radix, al menos lo intentas, pero yo quisiera que enfocaras la aplicación de ésta forma. Primero intenta ordenar la lista, datos[], pero no lo hagas desde un método, quiero ver cómo haces el algoritmo de ordenamiento... ordena los datos de menor a mayor... y pon el algoritmo al final de éste código, que es el mismo que pasaste pero sin el bucle for y con una pequeña mejora...
| Código: | ...
...
Scanner in = new Scanner(System.in);
int dato[], lista[], n=3;
dato=new int[n];
String cade = "";
// Tomas los valores
for(int i=0; i<dato.length; i++){
//dato[i]=Integer.parseInt (JOptionPane.showInputDialog(null,"Introduce un numero"));
System.out.print(" Introduce un numero: "); dato[i]=in.nextInt();
if ((dato[i]>999) || (dato[i]<100)) {
System.out.println("El número introducido no tiene tres digitos");
System.out.println("Por favor inténtelo de nuevo.");
i--;
} else cade = cade + dato[i] + ", ";
}
//ingresar.setText(cade); // Supuestamente muestras la cadena
System.out.println(cade.substring(0, cade.length()-2));
...
|
|
http://www.youtube.com/watch?v=DzLKIW86hmM
|
|
| Volver arriba |
|
|
sagdec
Registrado: 08 Jun 2010 Mensajes: 4
|
Publicado: Sab 12 Jun, 2010 03:44 am
Título del mensaje: Re: Ayuda con arreglos |
|
|
Bueno puse tu codigo y para ordenarlos use la lista simple :S, se que me dijiste que no usara el metodo pero por falta de tiempo tube que usarlo
el metodo para ordenar de lista simple lo pongo:
| Código: | private void agregarNodoLista(int v){
Lista aux,aux2,nuevo;
nuevo = new Lista(v);
int dato[], lista[], n=5;
dato=new int[n];
if (inicio == null)
inicio = nuevo;
else
if (nuevo.info < inicio.info){
nuevo.sigui = inicio;
inicio = nuevo;
}
else{
aux = inicio;
while((aux.sigui != null)&&(aux.sigui.info < nuevo.info))
aux = aux.sigui;
if (aux.sigui == null)
aux.sigui = nuevo;
else{
nuevo.sigui = aux.sigui;
aux.sigui = nuevo;
}
}
} |
con eso me salen los datos ordenados de menor a mayor pero en que me ayuda?
esque necesito ordenarlos primero con la unidad del dato, luego por la decena y al final por la centena. |
|
|
|
| Volver arriba |
|
|
WhiteSkull Moderador Global

Registrado: 20 Mar 2009 Mensajes: 989 Ubicación: y*width+x
|
|
| Volver arriba |
|
|
sagdec
Registrado: 08 Jun 2010 Mensajes: 4
|
Publicado: Sab 12 Jun, 2010 07:41 am
Título del mensaje: Re: Ayuda con arreglos |
|
|
Bueno jeje grax por la ayuda me sirvio mucho y si le entendi lo que tratabas de explicarme.
saludos y grax |
|
|
|
| Volver arriba |
|
|