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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con ordenamiento de nombres y numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con ordenamiento de nombres y numeros  (Leído 875 veces)
Tada

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ayuda con ordenamiento de nombres y numeros
« en: 2 Abril 2016, 16:57 pm »

hola necesito saber como sacar un listado de estudiantes con sus promedios de cada unidad formativa ordenado de forma alfabética y por orden de mérito. lo de ordenar los nombres si me lo hago pero de promedios de cada unidad no se como hacerlo .por cierto son 4 unidades.

este código es para ingresar los nombres de los estudiantes
Código:
public static String[] Estudiantes(String[] Nombres, int[] Practicas, int[] Trabajos, int[] ExamenUnidad, int[] NotaUnidad) throws IOException {
 
        for (int i = 0; i < Nombres.length; i++) {
            Tada("Ingrese Nombre N°" + (i + 1) + ":");
            Nombres[i] = LeerCadena();
            Tada("\n");
            Notas(Practicas, Trabajos, ExamenUnidad, NotaUnidad);
        }
        return Nombres;
    }
y este es para las notas
Código:
public static int[] Notas(int[] Practicas, int[] Trabajos, int[] ExamenUnidad, int[] NotaUnidad) throws IOException {
 
        for (int i = 0; i < Practicas.length; i++) {
            Tada("╔════" + "         Notas del la unidad Nº" + (i + 1) + "        ════╗" + "\n");
            Tada(" Ingrese la nota de Practicas: ");
            Practicas[i] = LeerDato();
            Tada(" Ingrese la nota de Trabajos: ");
            Trabajos[i] = LeerDato();
            Tada(" Ingrese la nota de ExamenUnidad: ");
            ExamenUnidad[i] = LeerDato();
            NotaUnidad[i] = (Practicas[i] + Trabajos[i] + ExamenUnidad[i]) / 3;
            Tada("╚════" + " La nota de unidad del estudiante es:" + NotaUnidad[i] + " ════╝" + "\n");
            Tada("\n");
        }
        return NotaUnidad;
 
    }
Lo que quiero encontrar es como ordenar de manera numérica los promedios de cada unidad formativa
en este código o algún otro que me proporcionen
Código:
public static void Burbuja(String[] x, int[] NotaUnidad) {
        for (int i = 0; i < (x.length); i++) {
            for (int j = 0; j < (x.length - 1); j++) {
                if (x[j].compareToIgnoreCase((x[j + 1])) > 0) {
                    String ordenarnombre = x[j];
                    x[j] = x[j + 1];
                    x[j + 1] = ordenarnombre;
                    int OrdenarNota = NotaUnidad[j];
                    NotaUnidad[j] = NotaUnidad[j + 1];
                    NotaUnidad[j + 1] = OrdenarNota;
 
                }
            }
        }
 
    }
al final quiero mostrar algo así
ejemplo de los nombres ordenados y que salgo a su costado los promedios de cada unidad ordenado de forma numérica

nombres ordenados          promediosUnidadOrdenados
ana                                     12
                                          15
                                          18
kevin                                    02
                                          10
                                          12
zus                                      15
                                          16
                                          19
algo así


En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: Ayuda con ordenamiento de nombres y numeros
« Respuesta #1 en: 2 Abril 2016, 17:08 pm »

Si no he entendido mal quieres ordenar las notas de cada alumno que tienes dentro de 3 arrays diferentes (practicas,trabajos,examenUnidad,notaunidad)?
El algoritmo buble sort (burbuja) es el algoritmo de ordenación más ineficiente de todos :P


En línea

Tada

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ayuda con ordenamiento de nombres y numeros
« Respuesta #2 en: 2 Abril 2016, 17:33 pm »

si pudieras al menos pasarme una linea de código de poder ordenarlos seria genial
por favor
En línea

LaiaxanIV

Desconectado Desconectado

Mensajes: 57


Ver Perfil
Re: Ayuda con ordenamiento de nombres y numeros
« Respuesta #3 en: 2 Abril 2016, 23:44 pm »

Perdona que no te haya respondido antes.
Código:
static void mergeSort(int[] A) {
        if (A.length > 1) {
            int q = A.length/2;
            int[] leftArray = new int[q];
            for(int i = 0; i < q;++i){
                leftArray[i]=A[i];
            }
            int[] rightArray = new int[A.length - q];
            for(int i = q; i < A.length; ++i){
                rightArray[i-q]=A[i];
            }

            mergeSort(leftArray);
            mergeSort(rightArray);

            merge(A,leftArray,rightArray);
        }
    }

    static void merge(int[] a, int[] l, int[] r) {
        int totElem = l.length + r.length;
        int i,li,ri;
        i = li = ri = 0;
        while ( i < totElem) {
            if ((li < l.length) && (ri<r.length)) {
                if (l[li] < r[ri]) {
                    a[i] = l[li];
                    i++;
                    li++;
                }
                else {
                    a[i] = r[ri];
                    i++;
                    ri++;
                }
            }
            else {
                if (li >= l.length) {
                    while (ri < r.length) {
                        a[i] = r[ri];
                        i++;
                        ri++;
                    }
                }
                if (ri >= r.length) {
                    while (li < l.length) {
                        a[i] = l[li];
                        li++;
                        i++;
                    }
                }
            }
        }
    }

Este algoritmo, merge sort ordena un int[] del tamaño que sea de menor a mayor.
Si puedes usar alguna libreria, si haces import java.util.Arrays, tienes la opción de usar la función Arrays.sort(Object[] A).
« Última modificación: 2 Abril 2016, 23:47 pm por LaiaxanIV » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ordenamiento de numeros en shellsort
Programación C/C++
angedu63 2 2,679 Último mensaje 26 Septiembre 2010, 20:29 pm
por [L]ord [R]NA
nombres de numeros a digitos en c
Programación C/C++
ginny1685 1 1,307 Último mensaje 13 Mayo 2012, 20:03 pm
por david_BS
Ordenamiento de numeros problema con la salida
Programación C/C++
nolasco281 6 1,228 Último mensaje 23 Abril 2014, 03:14 am
por nolasco281
Ayuda comparacion y ordenamiento de numeros
ASM
ivanto534 3 1,415 Último mensaje 8 Julio 2016, 17:52 pm
por cpu2
Ordenamiento de nombres en C# « 1 2 »
Programación C/C++
BardoArmas 12 1,635 Último mensaje 24 Noviembre 2018, 16:42 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines