From 48c8a85140afccda5d909762153566426f97bf3d Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Tue, 22 Oct 2024 23:19:10 +0200 Subject: [PATCH] Ejercicios del 1 al 4 del cap 4 bloque 3 --- src/capitulo04/bloque03/Ejercicio01.java | 28 +++++++++++++++++++ src/capitulo04/bloque03/Ejercicio02.java | 27 ++++++++++++++++++ src/capitulo04/bloque03/Ejercicio03.java | 35 ++++++++++++++++++++++++ src/capitulo04/bloque03/Ejercicio04.java | 32 ++++++++++++++++++++++ 4 files changed, 122 insertions(+) create mode 100644 src/capitulo04/bloque03/Ejercicio01.java create mode 100644 src/capitulo04/bloque03/Ejercicio02.java create mode 100644 src/capitulo04/bloque03/Ejercicio03.java create mode 100644 src/capitulo04/bloque03/Ejercicio04.java diff --git a/src/capitulo04/bloque03/Ejercicio01.java b/src/capitulo04/bloque03/Ejercicio01.java new file mode 100644 index 0000000..9aca02e --- /dev/null +++ b/src/capitulo04/bloque03/Ejercicio01.java @@ -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; + } +} diff --git a/src/capitulo04/bloque03/Ejercicio02.java b/src/capitulo04/bloque03/Ejercicio02.java new file mode 100644 index 0000000..4e42022 --- /dev/null +++ b/src/capitulo04/bloque03/Ejercicio02.java @@ -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; + } +} diff --git a/src/capitulo04/bloque03/Ejercicio03.java b/src/capitulo04/bloque03/Ejercicio03.java new file mode 100644 index 0000000..e958479 --- /dev/null +++ b/src/capitulo04/bloque03/Ejercicio03.java @@ -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; + } +} diff --git a/src/capitulo04/bloque03/Ejercicio04.java b/src/capitulo04/bloque03/Ejercicio04.java new file mode 100644 index 0000000..a8d6604 --- /dev/null +++ b/src/capitulo04/bloque03/Ejercicio04.java @@ -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; + } +}