JAVA 05x03: MERGE SORT

MERGE SORT:
package javaapplication5c;
import java.util.Scanner;

public class JavaApplication5C {
    public static void MostrarArreglo(int N,int ANros[]) {
        for(int k=0;k<N;k++) {
            System.out.print(ANros[k]+" ");
        }
    }
    //MODULO LEER ARREGLO
    public static void LeerArreglo(int N,int Anotas[]) {
        //Leer las notas
        for(int k=0;k<N;k++) {
            System.out.print("Nro "+(k+1)+" : ");
            Anotas[k]=LeerEntero();
        }
    }
    //MODULO LEER ENTERO
    public static int LeerEntero() {
        Scanner S=new Scanner(System.in);
        int Nro=S.nextInt();
        return Nro;
    }
    public static void merge(int A[],int izq, int m, int der){
    int i, j, k;
    int [] B = new int[A.length]; //array auxiliar
    for (i=izq; i<=der; i++) //copia ambas mitades en el array auxiliar
             B[i]=A[i];

             i=izq; j=m+1; k=izq;
             while (i<=m && j<=der) //copia el siguiente elemento más grande
             if (B[i]<=B[j])
                     A[k++]=B[i++];
             else
                     A[k++]=B[j++];
             while (i<=m) //copia los elementos que quedan de la
                           A[k++]=B[i++]; //primera mitad (si los hay)
    }
    public static void mergesort(int A[],int izq, int der){
        if (izq<der){
            int m=(izq+der)/2;
            mergesort(A,izq, m);
            mergesort(A,m+1, der);
            merge(A,izq, m, der);
        }
    }
            
    public static void main(String[] args) {
        //DECLARAR ARREGLO
        int Max=100;
        int ANros[]=new int[Max];
        //Leer los elementos del arreglo
        int N;
        System.out.print("Ingrese Nro de Elementos : ");
        N = LeerEntero();
        //LEER ARREGLO
        LeerArreglo(N, ANros);
        //ORDENAR LOS ELEMENTOS DEL ARREGLO
        mergesort(ANros,0,N-1);
        //Mostrar arreglo ordenado
        MostrarArreglo(N,ANros);
    }
}
(PROGRAMACIÓN II - LABORATORIO 05 -  ALGORITMO : MERGE SORT)

Comentarios

Entradas populares de este blog

JAVA 02x01: Calcular el promedio de notas y determinar el n° de notas mayores al promedio.(ESTRUCTURA DE DATOS:Arreglos)

JAVA 01x01: Promedio: Aprobado,Desaprobado, Reprobado