Arreglo Java

Earl

Bovino maduro
#1
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.
 

Earl

Bovino maduro
#2
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]);

    }
}
 

AlxRex

Bovino maduro
#3
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.
 

Zephyros

Bovino de la familia
#4
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.
 
#7
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
 
Arriba