Implementing 2D Array Algorithms · Implementando Algoritmos de Matrices 2D
| English | Español |
|---|---|
| nested-loop/ˈnestɪd luːp/ | bucle anidado |
| main diagonal/meɪn daɪˈæɡənl/ | diagonal principal |
| indexed/ˈɪndekst/ | indexado |
Grid algorithms
- 2-D algorithms combine the array patterns with nested-loop 嵌套循环 traversal.
- Sum / count / max over the whole grid: accumulate inside the inner loop.
- Search a grid: return the
[row][col]where found (or a "not found" signal). - The same accumulator/max logic, now over
rows × columnscells.
Algoritmos de cuadrícula
- Los algoritmos 2-D combinan los patrones de matriz con la travesía de bucles anidados nested-loop.
- Suma / recuento / máximo sobre toda la cuadrícula: acumular dentro del bucle interno.
- Buscar en una cuadrícula: devolver el
[row][col]donde se encuentre (o una señal de "no encontrado"). - La misma lógica de acumulador/máximo, ahora sobre
rows × columnsceldas.
Row and column sums
- One row: fix
r, loopcover the columns, summingg[r][c]. - One column: fix
c, looprover the rows, summingg[r][c]. - Choosing which index to fix and which to loop is the key decision.
- A row sum sweeps across; a column sum sweeps down.
Sumas de fila y columna
- Una fila: fija
r, iteracsobre las columnas, sumandog[r][c]. - Una columna: fija
c, iterarsobre las filas, sumandog[r][c]. - Elegir qué índice fijar y cuál iterar es la decisión clave.
- Una suma de fila barre horizontalmente; una suma de columna barre verticalmente.
The diagonal
- The main diagonal 主对角线 of a square grid is the cells where row == column.
- Loop one index:
for (int i = 0; i < g.length; i++) { ... g[i][i] ... } g[0][0], g[1][1], g[2][2], …— a single loop, both indices equal.- Useful for square grids (identity checks, board diagonals).
La diagonal
- La diagonal principal main diagonal de una cuadrícula cuadrada son las celdas donde fila == columna.
- Itera un solo índice:
for (int i = 0; i < g.length; i++) { ... g[i][i] ... } g[0][0], g[1][1], g[2][2], …— un solo bucle, ambos índices iguales.- Útil para cuadrículas cuadradas (comprobaciones de identidad, diagonales de tableros).
Modifying cells
- To change a cell, use the indexed 带下标 nested loops and assign
g[r][c] = .... - The for-each version can't write back to the grid.
- Watch the two bounds — a wrong length reads or writes the wrong cell.
- Trace
[r][c]carefully, especially when rows and columns differ in count.
Modificación de celdas
- Para cambiar una celda, usa los bucles anidados indexados indexed y asigna
g[r][c] = .... - La versión for-each no puede escribir en la cuadrícula.
- Ten cuidado con ambos límites; una longitud incorrecta leerá o escribirá en la celda equivocada.
- Rastrea
[r][c]cuidadosamente, especialmente cuando el número de filas y columnas difiere.
Decide which index to fix and which to loop — that's the difference between a row sum and a column sum. A row sum fixes r and loops c (g[r][c] across); a column sum fixes c and loops r (g[r][c] down). And modifying cells needs the indexed nested loops (g[r][c] = …); the for-each form can only read.
Decide qué índice fijar y cuál iterar — esa es la diferencia entre una suma de fila y una suma de columna. Una suma de fila fija r e itera c (g[r][c] horizontalmente); una suma de columna fija c e itera r (g[r][c] verticalmente). Y modificar celdas necesita los bucles indexados (g[r][c] = …); la forma for-each solo permite lecturas.
Summing column 0 of a grid:
int sum = 0;for (int r = 0; r < g.length; r++) { sum += g[r][0]; }- Fixes column
0, loops down the rows — a column sum.
Sumando la columna 0 de una cuadrícula:
int sum = 0;for (int r = 0; r < g.length; r++) { sum += g[r][0]; }- Fija la columna
0, itera hacia abajo por las filas — una suma de columna.
2-D algorithms apply array patterns over nested loops: whole-grid sum/count/max/search, a row sum (fix r, loop c), a column sum (fix c, loop r), or the diagonal (g[i][i]). Modifying cells needs the indexed loops (g[r][c] = …); mind both bounds (g.length rows, g[0].length columns).
Los algoritmos 2-D aplican patrones de matriz sobre bucles anidados: suma/recuento/máximo/búsqueda de toda la cuadrícula, suma de fila (fija r, itera c), suma de columna (fija c, itera r) o diagonal (g[i][i]). Modificar celdas requiere los bucles indexados (g[r][c] = …); ten cuidado con ambos límites (g.length filas, g[0].length columnas).
Summing column 0 · Suma de la columna 0
g[0][0]=1, g[1][0]=4, g[2][0]=7: running sum 1, 5, 12. · g[0][0]=1, g[1][0]=4, g[2][0]=7: suma acumulativa 1, 5, 12.
To sum ONE row r, you... · Para sumar UNA fila r, usted...
A row sum fixes the row, loops the columns. · Una suma de fila fija la fila y recorre las columnas.
To sum ONE column c, you... · Para sumar UNA columna c, usted...
A column sum fixes the column, loops the rows. · Una suma de columna fija la columna y recorre las filas.
The main diagonal of a square grid is the cells where... · La diagonal principal de una cuadrícula cuadrada son las celdas donde...
g[0][0], g[1][1], g[2][2] — one index, both equal. · g[0][0], g[1][1], g[2][2] — un índice, ambos iguales.
The for-each form can modify (write to) grid cells. · La forma for-each puede modificar (escribir en) celdas de la matriz.
For-each is read-only; use indexed loops (g[r][c] = ...) to write. · For-each es solo lectura; use bucles indexados (g[r][c] = ...) para escribir.
Column 0 of {{1,2},{4,5},{7,8}} is 1, 4, 7. What is its sum? · La columna 0 de {{1,2},{4,5},{7,8}} es 1, 4, 7. ¿Cuál es su suma?
1 + 4 + 7 = 12.
Order the steps to sum column c. · Ordene los pasos para sumar la columna c.
Initialise, loop the rows, accumulate, return. · Inicialice, recorra las filas, acumule, retorne.