Skip to article frontmatterSkip to article content

Ejercicios de Arreglos (Estáticos)

Ejercicios para practicar la manipulación de arreglos de tamaño fijo. Un arreglo es una colección de elementos del mismo tipo almacenados en ubicaciones de memoria contiguas.


1: Operaciones Básicas

1.1: Carga y Muestra

Descripción

Crear dos funciones complementarias para manejar arreglos: una para que el usuario ingrese datos y llene un arreglo, y otra para mostrar el contenido del arreglo de una forma clara y legible.

Lógica y Consideraciones

1.2: Suma

Descripción

Calcular la suma de todos los elementos contenidos en un arreglo de números.

Lógica y Consideraciones

1.3: Promedio

Descripción

Calcular el valor promedio (media aritmética) de los elementos de un arreglo.

Lógica y Consideraciones


2: Búsqueda y Estadísticas

2.1: Máximo y Mínimo

Descripción

Encontrar los valores más grande (máximo) y más pequeño (mínimo) dentro de un arreglo de números.

Lógica y Consideraciones

2.2: Casi Máximo

Descripción

Encontrar el segundo elemento más grande en un arreglo. Este ejercicio requiere un seguimiento más cuidadoso que simplemente encontrar el máximo.

Lógica y Consideraciones

2.3: Búsqueda de Elemento

Descripción

Implementar una búsqueda lineal para encontrar la primera ocurrencia de un elemento específico dentro de un arreglo. Si se encuentra, se debe devolver su índice.

Lógica y Consideraciones

2.4: Contar Repeticiones

Descripción

Contar cuántas veces aparece un número específico en un arreglo.

Lógica y Consideraciones

2.5: Elemento más Cercano

Descripción

Dado un arreglo y un valor de referencia, encontrar el elemento en el arreglo que tiene la menor diferencia absoluta con dicho valor.

Lógica y Consideraciones


3: Manipulación de Arreglos

3.1: Inversión

Descripción

Invertir el orden de los elementos de un arreglo in-place, es decir, sin usar un segundo arreglo para almacenar el resultado temporalmente.

Lógica y Consideraciones

3.2: Copia

Descripción

Copiar todos los elementos de un arreglo de origen a un arreglo de destino.

Lógica y Consideraciones

3.3: Deduplicación

Descripción

Eliminar los elementos duplicados de un arreglo, conservando solo la primera aparición de cada elemento. La función debe modificar el arreglo in-place y devolver el nuevo tamaño lógico.

Lógica y Consideraciones


4: Verificación

4.1: ¿Está ordenado?

Descripción

Verificar si un arreglo está ordenado de forma ascendente.

Lógica y Consideraciones

4.2: Solo Positivos

Descripción

Verificar si todos los elementos de un arreglo son números positivos (mayores que cero).

Lógica y Consideraciones


5: Operaciones Avanzadas con Arreglos

5.1: Rotación de Arreglo

Descripción

Implementar una función que rote los elementos de un arreglo k posiciones hacia la derecha. Esto significa que los últimos k elementos se moverán al principio del arreglo, y el resto de los elementos se desplazarán hacia la derecha.

Lógica y Consideraciones

5.2: Fusión de Arreglos

Descripción

Escribir una función que fusione dos arreglos en un tercer arreglo que contenga todos los elementos de los dos primeros. Si los arreglos originales están ordenados, el resultado también debería estarlo (ver Merge Sort).

Lógica y Consideraciones

5.3: Intersección de Arreglos

Descripción

Crear una función que reciba dos arreglos y devuelva un nuevo arreglo con los elementos que son comunes a ambos. Cada elemento debe aparecer solo una vez en el resultado.

Lógica y Consideraciones

5.4: Unión de Arreglos

Descripción

Crear una función que reciba dos arreglos y devuelva un nuevo arreglo con todos los elementos de ambos, sin duplicados.

Lógica y Consideraciones

5.5: Separar Pares e Impares

Descripción

Reorganizar un arreglo in-place de tal manera que todos los números pares queden al principio y todos los impares al final. El orden relativo entre los números pares o entre los impares no necesita conservarse.

Lógica y Consideraciones

5.6: Algoritmo de Kadane (Suma Máxima de Subarreglo)

Descripción

Implementar el algoritmo de Kadane para encontrar la suma del subarreglo contiguo que tenga la suma más grande. El arreglo puede contener números negativos.

Lógica y Consideraciones

5.7: Histograma

Descripción

Dado un arreglo de enteros no negativos, el programa debe imprimir un histograma simple usando asteriscos, donde cada número n se representa con una línea de n asteriscos.

Lógica y Consideraciones

5.8: Barajar Arreglo (Fisher-Yates)

Descripción

Implementar el algoritmo de Fisher-Yates para barajar (desordenar aleatoriamente) los elementos de un arreglo in-place.

Lógica y Consideraciones

5.9: Encontrar Elemento Faltante

Descripción

Dado un arreglo que contiene n-1 números distintos en el rango de 1 a n, encontrar el único número que falta.

Lógica y Consideraciones

5.10: Encontrar Par con Suma X

Descripción

Dado un arreglo de números y un valor X, determinar si existe un par de elementos en el arreglo cuya suma sea exactamente X.

Lógica y Consideraciones

5.11: Mediana de un Arreglo

Descripción

Calcular la mediana de un arreglo. La mediana es el valor que se encuentra en la posición central de un arreglo ordenado. Si el arreglo tiene un número par de elementos, la mediana es el promedio de los dos elementos centrales.

Lógica y Consideraciones

5.12: Moda de un Arreglo

Descripción

Encontrar la moda de un arreglo, que es el elemento que aparece con mayor frecuencia.

Lógica y Consideraciones

5.13: Rellenar con Secuencia Aritmética

Descripción

Escribir una función que llene un arreglo con los términos de una secuencia aritmética, dados un valor de inicio, un tamaño y un paso (la diferencia constante entre términos).

Lógica y Consideraciones

5.14: Diferencia Simétrica

Descripción

Calcular la diferencia simétrica entre dos arreglos. El resultado debe ser un nuevo arreglo que contenga los elementos que están en uno de los arreglos, pero no en ambos.

Lógica y Consideraciones

5.15: Conteo de Inversiones

Descripción

Contar el número de “inversiones” en un arreglo. Una inversión es un par de índices (i, j) tales que i < j y arr[i] > arr[j]. Un arreglo perfectamente ordenado tiene 0 inversiones.

Lógica y Consideraciones


6: Más Manipulación de Arreglos

6.1: Picos y Valles

Descripción

Escribir una función que encuentre todos los “picos” en un arreglo. Un pico es un elemento que es estrictamente mayor que sus dos vecinos (el anterior y el siguiente). Los elementos en los extremos no pueden ser picos.

Lógica y Consideraciones

6.2: Subarreglo Más Largo con Suma Cero

Descripción

Dado un arreglo de enteros (positivos y negativos), encontrar la longitud del subarreglo contiguo más largo cuya suma de elementos sea cero.

Lógica y Consideraciones

6.3: Reorganizar Positivos y Negativos

Descripción

Reorganizar un arreglo in-place de tal manera que todos los números negativos aparezcan antes que todos los números positivos. El orden relativo entre los números del mismo signo no es importante.

Lógica y Consideraciones

6.4: Producto de los Demás Elementos

Descripción

Dado un arreglo de números, crear un nuevo arreglo donde cada elemento en la posición i sea el producto de todos los demás números del arreglo original, pero sin usar el operador de división.

Lógica y Consideraciones

6.5: Arreglo de Frecuencias

Descripción

Dado un arreglo de enteros que contiene números en un rango conocido (por ejemplo, de 0 a 99), crear un “arreglo de frecuencias” que cuente cuántas veces aparece cada número.

Lógica y Consideraciones

6.6: ¿Es Subconjunto?

Descripción

Implementar una función que determine si un arreglo A es un subconjunto de otro arreglo B. Esto significa que todos los elementos de A deben estar presentes en B.

Lógica y Consideraciones

6.7: Mover Ceros al Final

Descripción

Escribir una función que mueva todos los ceros de un arreglo al final del mismo, manteniendo el orden relativo de los elementos no nulos.

Lógica y Consideraciones

6.8: Líderes en un Arreglo

Descripción

Encontrar todos los “líderes” en un arreglo. Un elemento es un líder si es mayor que todos los elementos que se encuentran a su derecha. El elemento más a la derecha siempre es un líder.

Lógica y Consideraciones

6.9: Máxima Diferencia

Descripción

Encontrar la máxima diferencia arr[j] - arr[i] en un arreglo, con la condición de que el índice j sea mayor que el índice i.

Lógica y Consideraciones

6.10: Punto de Equilibrio

Descripción

Encontrar un “punto de equilibrio” en un arreglo. Es un índice tal que la suma de los elementos a su izquierda es igual a la suma de los elementos a su derecha. Si no existe, devolver -1.

Lógica y Consideraciones