Está en la página 1de 9

El ejercicio 1 y 2 del quiz se realizo en un solo programa

Se crean los arreglos que se utilizaran para ambos ejercicios*/

private int[] arregloNumeros;

private Persona[] personas;

private int tamanio;

public MetodoOrdenamiento() {

//..

public Persona getPersonas(int pos) {

return this.personas[pos];

public void setPersonas(int pos, Persona dato) {

this.personas[pos] = dato;

public int getArregloNumeros(int pos) {

return this.arregloNumeros[pos];

public void setArregloNumeros(int pos, int dato) {

this.arregloNumeros[pos] = dato;

public int getTamanio() {

return this.tamanio;
}

public void setTamanio(int tamanio) {

this.tamanio = tamanio;

} método utilizado para asignar el

public void crearVector() { tamaño de los arreglos en

this.personas = new Persona[this.tamanio]; tiempo de ejecución.

this.arregloNumeros = new int[this.tamanio];

public void llenar(int contador, int dato) { método para llenar el arreglo de números

setArregloNumeros(contador, dato);

public void llenar(int contador, Persona persona) { método para llenar el arreglo de

setPersonas(contador, persona); personas.

public String mostrarArregloNumeros() método para

{ mostrar el

String dato = "\n ** MOSTRANDO ARREGLO ** \n"; arreglo de

int largo = arregloNumeros.length; números

for (int i = 0; i < largo; i++) {

dato += "Numero en posicion " + "[" + i + "] : " + getArregloNumeros(i) + "\n";

return dato;

}
public String mostrarArregloPersonas() { método para mostrar el arreglo de

String dato = "\n ** MOSTRANDO ARREGLO ** \n"; personas

int largo = arregloNumeros.length;

for (int i = 0; i < largo; i++) {

dato += getPersonas(i);

return dato;

} método utilizado para cambiar los

public void cambiar(int p1, int p2) { valores des las posiciones para la

int temp; ejecución utilizando el método de

temp = getArregloNumeros(p1); ordenamiento por selección.

setArregloNumeros(p1, getArregloNumeros(p2));

setArregloNumeros(p2, temp);

public String ordenarSeleccion() { método que ordena y concatena la

String dato = "\n ** ORDENANDO ARREGLO ** \n"; información de las comparaciones e

int largo = arregloNumeros.length; intercambios de posiciones que se

int j; hacen durante el ordenamiento

int posMenor; usando el método de selección se

int menorElemento; estableció el método como String

for (int i = 0; i < largo; i++) { para poder mostrar la información.

posMenor = i;

menorElemento = getArregloNumeros(i);

for (j = i + 1; j < largo; j++) {


dato += "Comparando el numero [" + menorElemento + "] con [" + getArregloNumeros(j) + "] \n";

se concatenan las comparaciones entre el elemento menor con el elemento siguiente

if (getArregloNumeros(j) < menorElemento) { el algoritmo actual se ordena de menor a

mayor

si la condición es verdadera entonces se establece como nuevo elemento menor el de una


posición superior, por tal motivo se concatena dentro del if la información que referencia a la
posición actual con el respectivo dato, y el nuevo dato menor y su posición.

dato += "Se cambia la posicion [" + posMenor + "] con el valor de : " +
getArregloNumeros(posMenor)

+ " con la posicion [" + j + "] con el valor de : " + getArregloNumeros(j) + "\n";

menorElemento = getArregloNumeros(j);

posMenor = j;

} else {

Si en caso no entra al if es porque no se realizo cambio en las posiciones, por tal motivo se
concatena un mensaje que nos diga que no se realizo cambio en las posiciones

dato += " No se cambia posciones \n";

cambiar(i, posMenor);

return dato;

}
Método burbuja para ordenamiento del arreglo de personas para el ejercicio número 2

public String sortBurbuja() {

String dato = "\n ** ORDENANDO ARREGLO ** \n";

int total = this.personas.length;

el método funciona como una matriz bidimensional entonces, el primer for se posiciona sobre el
elemento de la primera fila y columna, el segundo for lo que hace es comparar el elemento actual
con el elemento superior ósea el elemento +1 y ira posicionando ese elemento en la parte final del
arreglo, entonces tenemos que el segundo for al iterar este se le va restando la iteración del
primer for dado que los elementos de mitad del arreglo hacia atrás se van ordenad, es por ello que
el método solo itera hasta la mitad del arreglo

for (int i = 0; i < total - 1; i++) {

for (int j = 0; j < total - 1 - i; j++) {

dato += "Comparando a la persona [" + getPersonas(j + 1).getNombre() + "] con [" +


getPersonas(j).getNombre() + "] \n";

if (((Comparable) getPersonas(j + 1).getNombre()).compareTo(getPersonas(j).getNombre()) > 0) {

si la condición es verdadera entonces se establece como un nuevo elemento menor el de una


posición superior, por tal motivo lo que se hizo es concatenar dentro del if la información de la
posición actual con su respectivo dato con el nuevo valor menor y su posición

ato += "Se cambia la posicion [" + j + "] con el valor de : " + getPersonas(j).getNombre()

+ " con la posicion [" + (j + 1) + "] con el valor de : " + getPersonas(j +


1).getNombre() + "\n";

Persona aux = getPersonas(j);

setPersonas(j, getPersonas(j + 1));

setPersonas(j + 1, aux);

} else {

dato += " No se cambia posciones \n";

} } return dato;
PRUEBA DE ESCRITORIO METODO DE SELECCIÓN

Se compara el elemento de menor valor dentro del vector y se coloca en la primera posición, luego
se busca el segundo elemento y así sucesivamente hasta dejar el elemento de mayor valor de
ultimo.

13 1 91 -7 -9 32
Se ordena de forma ascendente

I=0;

-9 1 91 -7 13 32

Menor elemento

13 1 91 -7 -9 32
Se ordena de forma ascendente

I=1;

-9 -7 91 1 13 32

Menor elemento

13 1 91 -7 -9 32
Se ordena de forma ascendente

I=2

-9 -7 1 91 13 32

Menor elemento

13 1 91 -7 -9 32
Se ordena de forma ascendente

I=3

-9 -7 1 13 91 32

Menor elemento

13 1 91 -7 -9 32
Se ordena de forma ascendente
I=4

-9 -7 1 13 32 91

Menor elemento
PRUEBA DE ESCRITORIO PUNTO NÚMERO 2

Aquí como segundo método escogí el método de burbuja haciendo comparación con nombres de
usuario en registro de personas, se organiza de mayor a menor alfabéticamente dependiendo del
primer nombre.

Sofia Andrea Carolina Pedro


Procedemos a ordenar

I=0;

J=0;

Sofia Andrea Carolina Pedro

>, como es falso no se hace nada

J=1;

Sofia Andrea Carolina Pedro

>, se cambia las posiciones

Sofia Carolina Andrea Pedro

J=2;

Sofia Carolina Andrea Pedro

>, se cambia las posiciones

Sofia Carolina Pedro Andrea

J=3;

Sofia Carolina Pedro Andrea

>, se cambia las posiciones

Sofia Pedro Carolina Andrea

También podría gustarte