Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions ago-dic-2024/Saul_Rivera/Act4.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
import java.util.Scanner;

public class Act4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();
scanner.nextLine();

String[] words = scanner.nextLine().split(" ");

mergeSort(words, 0, words.length - 1);

for (String word : words) {
System.out.print(word + " ");
}

scanner.close();
}

// Método de ordenación Merge Sort
public static void mergeSort(String[] array, int izq, int der) {
if (izq < der) {
int medio = (izq + der) / 2;

// Divide
mergeSort(array, izq, medio);
mergeSort(array, medio + 1, der);

// Venceras
merge(array, izq, medio, der);
}
}

public static void merge(String[] array, int izq, int medio, int der) {
int n1 = medio - izq + 1;
int n2 = der - medio;

String[] izqArray = new String[n1];
String[] derArray = new String[n2];

//Array Temporal
for (int i = 0; i < n1; i++) {
izqArray[i] = array[izq + i];
}
for (int j = 0; j < n2; j++) {
derArray[j] = array[medio + 1 + j];
}

int i = 0, j = 0;
int k = izq;
while (i < n1 && j < n2) {
if (izqArray[i].compareTo(derArray[j]) <= 0) {
array[k] = izqArray[i];
i++;
} else {
array[k] = derArray[j];
j++;
}
k++;
}

while (i < n1) {
array[k] = izqArray[i];
i++;
k++;
}

while (j < n2) {
array[k] = derArray[j];
j++;
k++;
}
}
}

68 changes: 68 additions & 0 deletions ago-dic-2024/Saul_Rivera/Act5.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Libro {
String nombre;
int paginas;

public Libro(String nombre, int paginas) {
this.nombre = nombre;
this.paginas = paginas;
}
}

public class Act5 {

public static void mergeSort(List<Libro> libros, int inicio, int fin) {
if (inicio < fin) {
int medio = (inicio + fin) / 2;
mergeSort(libros, inicio, medio);
mergeSort(libros, medio + 1, fin);
merge(libros, inicio, medio, fin);
}
}

public static void merge(List<Libro> libros, int inicio, int medio, int fin) {
List<Libro> izquierda = new ArrayList<>(libros.subList(inicio, medio + 1));
List<Libro> derecha = new ArrayList<>(libros.subList(medio + 1, fin + 1));

int i = 0, j = 0, k = inicio;

while (i < izquierda.size() && j < derecha.size()) {
if (izquierda.get(i).paginas <= derecha.get(j).paginas) {
libros.set(k++, izquierda.get(i++));
} else {
libros.set(k++, derecha.get(j++));
}
}

while (i < izquierda.size()) {
libros.set(k++, izquierda.get(i++));
}

while (j < derecha.size()) {
libros.set(k++, derecha.get(j++));
}
}

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = Integer.parseInt(scanner.nextLine());

List<Libro> libros = new ArrayList<>();

for (int i = 0; i < n; i++) {
String[] entrada = scanner.nextLine().split(" ");
String nombre = entrada[0];
int paginas = Integer.parseInt(entrada[1]);
libros.add(new Libro(nombre, paginas));
}

mergeSort(libros, 0, libros.size() - 1);

for (Libro libro : libros) {
System.out.print(libro.nombre + " ");
}
}
}
50 changes: 50 additions & 0 deletions ago-dic-2024/Saul_Rivera/Act6.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import java.util.Scanner;

public class Act6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

int n = scanner.nextInt();
int[] ColorId = new int[n];

for (int i = 0; i < n; i++) {
ColorId[i] = scanner.nextInt();
}

quickSort(ColorId, 0, n - 1);

for (int i = 0; i < n; i++) {
System.out.print(ColorId[i] + (i < n - 1 ? " " : "\n"));
}
scanner.close();
}

// Algoritmo Quick Sort
private static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivotIndex = particion(arr, low, high);
quickSort(arr, low, pivotIndex - 1);
quickSort(arr, pivotIndex + 1, high);
}
}

// Pivote
private static int particion(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
Intercambio(arr, i, j);
}
}
Intercambio(arr, i + 1, high);
return i + 1;
}

private static void Intercambio(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
15 changes: 15 additions & 0 deletions ago-dic-2024/Saul_Rivera/Practica_1.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import java.util.Scanner;

public class Practica_1 {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Ingrese ambos valores: ");
int a = sc.nextInt();
int b = sc.nextInt();

int c = a + b;

System.out.println("Resultado: " + c);
}
}
50 changes: 50 additions & 0 deletions ago-dic-2024/Saul_Rivera/Practica_2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import java.util.*;

public class Practica_2 {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.print("Por favor, ingrese la cantidad de problemas que David quiere resolver: ");
int acts = sc.nextInt();
int[] arr = new int[acts];

System.out.print("Ahora ingrese los minutos totales que David tiene disponibles: ");
int mins = sc.nextInt();

System.out.println("Ingrese los minutos que toma resolver cada uno de los " + acts + " problemas:");
for (int i = 0; i < arr.length; i++) {
System.out.print("Problema " + (i + 1) + ": ");
arr[i] = sc.nextInt();
}

// Ordenar los tiempos de menor a mayor usando el método de inserción
for (int i = 1; i < arr.length; i++) {
int auxiliar = arr[i];
int j;
for (j = i - 1; j >= 0 && arr[j] > auxiliar; j--) {
arr[j + 1] = arr[j];
}
arr[j + 1] = auxiliar;
}

int suma = 0;
int problemas_resueltos = 0;
for (int i = 0; i < arr.length; i++) {
if (suma + arr[i] <= mins) {
suma += arr[i];
problemas_resueltos++;
} else {
break;
}
}

System.out.println("\nDavid ha podido resolver " + problemas_resueltos + " problemas.");

System.out.println("Tiempo total disponible: " + mins + " minutos.");

System.out.println("Tiempo utilizado: " + suma + " minutos.");

System.out.println("¡Gracias por usar nuestro programa!");
}
}
42 changes: 42 additions & 0 deletions ago-dic-2024/Saul_Rivera/Primer_Parcial.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import java.util.*;

public class Primer_Parcial {

public static void main(final String[] args) {

final Scanner scanner = new Scanner(System.in);

System.out.println("Programa de ordenamiento de Medicinas");
System.out.println("Sigue las instrucciones para ingresar los medicamentos correctamente.\n");

System.out.print("Introduce el número de Medicamentos: ");
final int n = scanner.nextInt();

final String medicamento[]=new String[n];

System.out.print("Introduce el nombre de Medicamentos: ");
for(int i = 0; i > n; i++) {
medicamento[i]=scanner.nextLine();
}
scanner.close();

// Algoritmo de ordenamiento por burbuja
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++)
{
if (medicamento[j] < medicamento[j + 1]) {
final String temp = medicamento[j];
medicamento[j] = medicamento[j + 1];
medicamento[j + 1] = temp;
}
}
}

System.out.println("\nLos Pokémon capturados ordenados de mayor a menor poder son:");
for (int i = 0; i < n; i++) {
System.out.print(medicamento[i] + " ");
}

System.out.println("\n\n¡Gracias por usar el programa de ordenamiento de Pokémon!");
}
}
42 changes: 42 additions & 0 deletions ago-dic-2024/Saul_Rivera/Primer_Parcial2.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import java.util.Scanner;

public class Primer_Parcial2 {
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

System.out.println("Programa de ordenamiento de Medicamento");
System.out.println("Por favor, sigue las instrucciones para ingresar los datos correctamente.\n");

System.out.print("Introduce el número de Medicamentos sobrantes: ");
int n = scanner.nextInt();

// Arreglo para las pastillas sobrantes del Medicamento
int[] medicamento = new int[n];

System.out.println("Introduce las pastillas de cada Medicamento separados por un espacio:");
for (int i = 0; i < n; i++) {
medicamento[i] = scanner.nextInt();
}

scanner.close();

for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (medicamento[j] < medicamento[j + 1]) {
// mayor a menor
int temp = medicamento[j];
medicamento[j] = medicamento[j + 1];
medicamento[j + 1] = temp;
}
}
}

System.out.println("\nLos Medicamentos ordenados de mayor a menor son:");
for (int i = 0; i < n; i++) {
System.out.print(medicamento[i] + " ");
}
}
}


Loading