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

Quicksort


Enviado por   •  25 de Abril de 2023  •  Apuntes  •  602 Palabras (3 Páginas)  •  67 Visitas

Página 1 de 3

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;

}

FACULTAD DE INGENIERÍA Y ARQUITECTURA

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--;

FACULTAD DE INGENIERÍA Y ARQUITECTURA

}

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;

FACULTAD DE INGENIERÍA Y ARQUITECTURA

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

{

FACULTAD DE INGENIERÍA Y ARQUITECTURA

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

...

Descargar como (para miembros actualizados)  txt (5.5 Kb)   pdf (50.5 Kb)   docx (11.7 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com