Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Ejercicios de Arreglos (Estáticos)

Universidad Nacional de Río Negro

Acerca de

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.

Para profundizar en los conceptos teóricos, podés consultar el siguiente capítulo del apunte:

Operaciones Básicas

Ejercicio 10.1 - Carga y muestra ⭐⭐☆☆☆

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.

Ejercicio 10.2 - Suma ⭐⭐☆☆☆

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

Ejercicio 10.3 - Promedio ⭐⭐☆☆☆

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

Ejercicio 10.4 - Productoria ⭐⭐☆☆☆

Calcular el producto de todos los elementos de un arreglo.

Búsqueda y Estadísticas

Ejercicio 10.5 - Máximo y mínimo ⭐⭐☆☆☆

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

Ejercicio 10.6 - Casi máximo ⭐⭐☆☆☆

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

Ejercicio 10.7 - Búsqueda de elemento ⭐⭐☆☆☆

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.

Ejercicio 10.8 - Contar repeticiones ⭐⭐☆☆☆

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

Ejercicio 10.9 - Elemento más cercano ⭐⭐☆☆☆

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

Manipulación de Arreglos

Ejercicio 10.10 - Inversión ⭐⭐☆☆☆

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

Ejercicio 10.11 - Copia ⭐⭐☆☆☆

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

Ejercicio 10.12 - Deduplicació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.

Verificación

Ejercicio 10.13 - ¿Está ordenado? ⭐⭐☆☆☆

Verificar si un arreglo está ordenado de forma ascendente.

Ejercicio 10.14 - Solo positivos ⭐⭐☆☆☆

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

Operaciones Avanzadas con Arreglos

Ejercicio 10.15 - Rotación de arreglo ⭐⭐⭐☆☆

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.

Ejercicio 10.16 - Fusión de arreglos ⭐⭐⭐☆☆

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).

Ejercicio 10.17 - Intersección de arreglos ⭐⭐⭐☆☆

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.

Ejercicio 10.18 - Unión de arreglos ⭐⭐⭐☆☆

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

Ejercicio 10.19 - Separar pares e impares ⭐⭐☆☆☆

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.

Ejercicio 10.20 - Algoritmo de Kadane (Suma máxima de subarreglo) ⭐⭐⭐☆☆

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.

Ejercicio 10.21 - Histograma ⭐⭐☆☆☆

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.

Ejercicio 10.22 - Barajar arreglo (Fisher-Yates) ⭐⭐⭐☆☆

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

Ejercicio 10.23 - Encontrar elemento faltante ⭐⭐☆☆☆

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

Ejercicio 10.24 - Encontrar par con suma X ⭐⭐☆☆☆

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.

Ejercicio 10.25 - Mediana de un arreglo ⭐⭐⭐☆☆

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.

Ejercicio 10.26 - Moda de un arreglo ⭐⭐⭐☆☆

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

Ejercicio 10.27 - Rellenar con secuencia aritmética ⭐⭐☆☆☆

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).

Ejercicio 10.28 - Diferencia simétrica ⭐⭐☆☆☆

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.

Ejercicio 10.29 - Conteo de inversiones ⭐⭐☆☆☆

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.

Más Manipulación de Arreglos

Ejercicio 10.30 - Picos y valles ⭐⭐☆☆☆

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.

Ejercicio 10.31 - Subarreglo más largo con suma cero ⭐⭐⭐☆☆

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

Ejercicio 10.32 - Reorganizar positivos y negativos ⭐⭐☆☆☆

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.

Ejercicio 10.33 - Producto de los demás elementos ⭐⭐☆☆☆

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.

Ejercicio 10.34 - Arreglo de frecuencias ⭐⭐⭐☆☆

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.

Ejercicio 10.35 - ¿Es subconjunto? ⭐⭐☆☆☆

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.

Ejercicio 10.36 - Mover ceros al final ⭐⭐☆☆☆

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.

Ejercicio 10.37 - Líderes en un arreglo ⭐⭐⭐☆☆

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.

Ejercicio 10.38 - Máxima diferencia ⭐⭐☆☆☆

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.

Ejercicio 10.39 - Punto de equilibrio ⭐⭐☆☆☆

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.