ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ordenación recursiva con QuickSort y MergeSort


Enviado por   •  25 de Abril de 2021  •  Examen  •  2.649 Palabras (11 Páginas)  •  1.119 Visitas

Página 1 de 11

        

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS[pic 1]

GUIA DE LABORATORIO NRO. 03

ESCUELA            :  INGENIERIA DE SISTEMAS

ASIGNATURA    :  ESTRUCTURA DE DATOS

CICLO                 :  III

TURNO               : MAÑANA Y NOCHE

SEMESTRE         :  2021-1

DOCENTE           : MGTR. DANIEL ANGELES PINILLOS

  1. TEMA:  Ordenación recursiva con QuickSort y MergeSort.
  1. OBJETIVOS:
  • Configurar el Netbeans 8.2.
  • Desarrollar los ejercicios propuestos por el docente.
  1. METODOLOGÍA:
  • Solución de los ejercicios propuestos con la guía del docente.
  • Realizar un informe de toda la secuencia del laboratorio propuesto.
  1. RECURSOS:
  1. Equipo computacional con conexión a internet.
  2. Utilizar la guía de instalación de Netbeans 8.2
  3. Utilizar la plataforma Blackboard para entregar el laboratorio
  4. Utilizar la plataforma de Zoom para la sustentación de laboratorio.
  1. DESARROLLO DE ACTIVIDADES:
  1. Descripción
  2. Proceso

EJERCICIO DESARROLLADO # 01

Desarrollar una aplicación para realizar el registro de Alumnos. Los datos a almacenar son dni, nombres, edad, promedio. Utilizar para este ejercicio ordenamiento recursivo QuickSort.

Creando la clase Alumno:

public class Alumno {

    String dni,nom;

    int edad;

    double prom;

    public Alumno() {

    }

    public Alumno(String dni, String nom, int edad, double prom) {

        this.dni = dni;

        this.nom = nom;

        this.edad = edad;

        this.prom = prom;

    }

    public String getDni() {

        return dni;

    }

    public void setDni(String dni) {

        this.dni = dni;

    }

    public String getNom() {

        return nom;

    }

    public void setNom(String nom) {

        this.nom = nom;

    }

    public int getEdad() {

        return edad;

    }

    public void setEdad(int edad) {

        this.edad = edad;

    }

    public double getProm() {

        return prom;

    }

    public void setProm(double prom) {

        this.prom = prom;

    }

   

   

}

Creando la clase QuickSort

public class Quick {

     public void ordenarQ(Alumno[] array) {

        array= quicksort1(array);

    }

    public Alumno[]  quicksort1(Alumno numeros[]) {

        return quicksort2(numeros, 0, numeros.length-1);   //se entrega el arreglo, posicion izquierda y derecha del arreglo

    }

    public Alumno[] quicksort2(Alumno numeros[], int izq, int der) {    //recepciona

        if (izq >= der) {        //verifica que no haya cruce entre posiciones

            return numeros;

        }

        int i = izq, d = der;

        if (izq != der) {               //realice los cambios

            int pivote;

            Alumno aux;

            pivote = izq;              //se asigna la izquierda al pivote

            while (izq != der) {

                while (numeros[der].getEdad() >= numeros[pivote].getEdad() && izq < der) {

                    der--;

                }

                while (numeros[izq].getEdad()< numeros[pivote].getEdad() && izq < der) {

                    izq++;

                }

                if (der != izq) {

                    aux = numeros[der];

                    numeros[der] = numeros[izq];

                    numeros[izq] = aux;

                }

            }

            if (izq == der) {

                quicksort2(numeros, i, izq - 1);

                quicksort2(numeros, izq + 1, d);

            }

        } else {

            return numeros;

        }

        return numeros;

    }

}

Ingresando elementos a un arreglo de Alumnos para realizar el ordenamiento:

package Vista;

import Control.Merge;

import Control.Quick;

import Modelo.Alumno;

public class Consola {

    public static void main(String[] args) {

        Alumno[] array = new Alumno[3];

        array[0] = new Alumno("41742587","Juan Perez",21,14);

        array[1] = new Alumno("10587458","Diego Livano",27,11);

        array[2] = new Alumno("52962858","Vania Salcedo",17,12);

       

       

        System.out.println("ANTES DEL ORDENAMIENTO");

        String cad="";

        for(Alumno a:array)  //recorre 1 hasta el N

        {

            cad = cad + "["+a.getNom()+"]"+"["+a.getEdad()+"]";

        }

        System.out.println(cad);

                     

       Quick objQ = new Quick();

       objQ.ordenarQ(array);

       

        System.out.println("DESPUES DEL ORDENAMIENTO");

        cad="";

        for(Alumno a:array)  //recorre 1 hasta el N

        {

            cad = cad + "["+a.getNom()+"]"+"["+a.getEdad()+"]";

        }

        System.out.println(cad);

    }

}

...

Descargar como (para miembros actualizados) txt (10 Kb) pdf (226 Kb) docx (88 Kb)
Leer 10 páginas más »
Disponible sólo en Clubensayos.com