Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Arreglo Java

  • Autor de tema Autor de tema Earl
  • Fecha de inicio Fecha de inicio

Earl

Bovino adicto
Desde
12 Ago 2008
Mensajes
527
Que tal compañeros bakunos, bueno es una duda que tengo espero me puedan ayudar, lo que pasa es que un profesor me dejo de tarea, hacer un arreglo unidimensional donde capture 20 numeros (hasta aqui sin problemas) pero que despues los compare y los ordene de manera decendente, pero no se de que manera hacerlo, sinceramente soy principiante en java y ya trate como si fuera c y pues no me queda, quisiera saber si alguien me podria auxiliar.

Gracias...


El codigo que llevo es este...
Código:
import java.io.*;

class Ejercicio1 {

    @SuppressWarnings("empty-statement")
    public static void main(String[] args) {
        int num[]= new int[20]; 
        int aux, i, j;
        BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

            { System.out.println("Dame 20 valores:");
                for(aux=0; aux <=19; aux++)
                try { num[aux]= Integer.parseInt(teclado.readLine());
                }catch(IOException varerror){};
        };

        /**Aqui iria el for o if pero no se como aplicarlo*/

    for(aux=0; aux <=19; aux++)
    System.out.println(num[aux]);

    }
}

Se me olvidaba el i y el j los puse, por que trate de compararlo como en pero no me quedo.
 
Ahora trate asi y me marca un error en la linea 19 y busque y busque pero no se que onda :eolo:

Código:
import java.io.*;

class Ejercicio1 {

    @SuppressWarnings("empty-statement")
    public static void main(String[] args) {
        int num[]= new int[20]; 
        int aux, i, j;
        BufferedReader teclado = new BufferedReader(new InputStreamReader(System.in));

            { System.out.println("Dame 20 valores:");
                for(i=0; i <=19; i++)
                try { num[i]= Integer.parseInt(teclado.readLine());
                }catch(IOException varerror){};
        };

    for(i=1;i<=19;i++)
    for(j=i+1;j<=20;j++)
        if (num[i]<num[j])
        {
            aux=num[i];
            num[i]=num[j];
            num[j]=aux;}
        
    for(i=0; i <=19; i++)
    System.out.println(num[i]);

    }
}
 
Lo que entendí es que te pusieras a pensar, como compara los numeros para ordenarlos...

Existen metodos de ordenacion date una buelta por www.algoritmia.net y mas especifico busca sobre el metodo Burbuja

=D son metodos pensados en ordenar listas.
 
Investiga lo que son los métodos de ordenación de datos, entre éstos el QuickSort (ordenamiento rápido), te servirá para lo que quieres.
 
gracias AlxRex, encontre en esa pagina como aplicar lo que me faltaba
 
investiga algo ke se llama metodo burbuja........ y aplicalo en tu programa
 
import java.lang.*;
import java.io.*;

public class RadixSort{

public static void radixSort(int[] arr){
if(arr.length == 0)
return;
int[][] np = new int[arr.length][2];
int[] q = new int[0x100];
int i,j,k,l,f = 0;
for(k=0;k<4;k++){
for(i=0;i<(np.length-1);i++)
np[1] = i+1;
np[1] = -1;
for(i=0;i<q.length;i++)
q = -1;
for(f=i=0;i<arr.length;i++){
j = ((0xFF<<(k<<3))&arr)>>(k<<3);
if(q[j] == -1)
l = q[j] = f;
else{
l = q[j];
while(np[l][1] != -1)
l = np[l][1];
np[l][1] = f;
l = np[l][1];
}
f = np[f][1];
np[l][0] = arr;
np[l][1] = -1;
}
for(l=q[i=j=0];i<0x100;i++)
for(l=q;l!=-1;l=np[l][1])
arr[j++] = np[l][0];
}
}

public static void main(String[] args){
int i;
int[] arr = new int[15];
System.out.println(" \n ORIGINAL ");
for(i=0;i<arr.length;i++){
arr = (int)(Math.random() * 1024);
System.out.print(arr + " | ");
}
radixSort(arr);
System.out.println("\nORDENADO ");
for(i=0;i<arr.length;i++)
System.out.print(arr + " | ");
System.out.println("\nFIN DEL ORDENAMIENTO");
}
}
// toma como ejemplo esto .. existen diferentes metodos de ordenacion
 
Volver
Arriba