Ejercicios del 1 al 4 del cap 4 bloque 3

This commit is contained in:
2024-10-22 23:19:10 +02:00
parent 6c09baef4d
commit 48c8a85140
4 changed files with 122 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
package capitulo04.bloque03;
import static capitulo04.utils.Utils.crearArrayNumsAleatorios;
import static capitulo04.utils.Utils.mostrarArrayNums;
public class Ejercicio01 {
public static void main(String[] args) {
int[] nums150 = crearArrayNumsAleatorios(150, 0, 1000);
mostrarArrayNums(nums150);
System.out.println();
mostrarArrayNums(ordenarBurbuja(nums150));
}
public static int[] ordenarBurbuja(int[] array) {
boolean ordenando;
do {
ordenando = false;
for (int i = 0; i < array.length; i++) {
if (i != (array.length - 1) && array[i] > array[i + 1]) {
int tempNum = array[i];
array[i] = array[i + 1];
array[i + 1] = tempNum;
ordenando = true;
}
}
} while (ordenando);
return array;
}
}

View File

@@ -0,0 +1,27 @@
package capitulo04.bloque03;
import static capitulo04.utils.Utils.crearArrayNumsAleatorios;
import static capitulo04.utils.Utils.mostrarArrayNums;
public class Ejercicio02 {
public static void main(String[] args) {
int[] nums150 = crearArrayNumsAleatorios(150, 0, 1000);
mostrarArrayNums(nums150);
System.out.println();
mostrarArrayNums(ordenarInsersionDirecta(nums150));
}
public static int[] ordenarInsersionDirecta(int[] array) {
for (int i = 1; i < array.length; i++) {
int tempVar = i;
for (int j = tempVar - 1; j < tempVar && j >= 0; j--) {
if (array[tempVar] < array[j]) {
int tempNum = array[tempVar];
array[tempVar] = array[j];
array[j] = tempNum;
}
tempVar--;
}
}
return array;
}
}

View File

@@ -0,0 +1,35 @@
package capitulo04.bloque03;
import static capitulo04.utils.Utils.crearArrayNumsAleatorios;
import static capitulo04.utils.Utils.mostrarArrayNums;
public class Ejercicio03 {
public static void main(String[] args) {
int[] nums150 = crearArrayNumsAleatorios(150, 0, 1000);
mostrarArrayNums(nums150);
System.out.println();
mostrarArrayNums(ordenarShell(nums150));
}
public static int[] ordenarShell(int[] array) {
int[] saltos = new int[] {1750, 701, 301, 132, 57, 23, 10, 4, 1};
for (int salto : saltos) {
for (int inicio = 0; inicio < salto; inicio++) {
for (int i = inicio + salto; i < array.length; i += salto) {
int valorActual = array[i];
int j = i;
while (j >= salto && array[j - salto] > valorActual) {
array[j] = array[j - salto];
j -= salto;
}
array[j] = valorActual;
}
}
}
return array;
}
}

View File

@@ -0,0 +1,32 @@
package capitulo04.bloque03;
import static capitulo04.utils.Utils.crearArrayNumsAleatorios;
import static capitulo04.utils.Utils.mostrarArrayNums;
public class Ejercicio04 {
public static void main(String[] args) {
int[] nums150 = crearArrayNumsAleatorios(150, 0, 1000);
mostrarArrayNums(nums150);
System.out.println();
mostrarArrayNums(ordenarSeleccion(nums150));
}
public static int[] ordenarSeleccion(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
int indiceMenor = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[indiceMenor]) {
indiceMenor = j;
}
}
if (indiceMenor != i) {
int temp = array[i];
array[i] = array[indiceMenor];
array[indiceMenor] = temp;
}
}
return array;
}
}