Capítulo 7 (pp. 159–176) de Computer Science I.
Temas
| Sección | Página | Contenido |
|---|---|---|
| Uso Básico | 160 | Declarar/indexar arrays. |
| Memoria Estática y Dinámica | 162 | Asignación de memoria dinámica; copias superficiales vs profundas. |
| Arrays Multidimensionales | 166 | 2-D y superiores. |
| Otras Colecciones | 167 | Listas, mapas, etc. |
Ideas Clave
- Memoria estática vs dinámica — más explícita en C con
malloc/freey arrays 2-D contiguos; abstraída en Java/PHP. - Copia superficial vs profunda — una fuente clásica de errores; copiar una referencia vs copiar contenidos.
- Los arrays asociativos de PHP generalizan la idea de colección con índices clave-valor / no contiguos.
- Se itera con bucles (foreach).
Ejemplos
Encontrar el máximo
max ← A[0]
para i desde 1 hasta longitud(A) - 1:
si A[i] > max:
max ← A[i]
La copia superficial crea un alias de los mismos datos
B ← A // ambos nombres apuntan al mismo arreglo
B[0] ← 99 // A[0] ahora también es 99
Una copia profunda duplicaría cada elemento en su lugar.
En Java
int max = a[0];
for (int i = 1; i < a.length; i++)
if (a[i] > max) max = a[i];
int[] b = a; // b y a son la misma referencia de array (superficial)
b[0] = 99; // a[0] ahora también es 99
int[] c = a.clone(); // copia profunda de un array 1-D
Citas
[1] Computer Science I, Cap. 7, pp. 159–176.