Esto realmente se reduce a una diferencia cultural entre los matemáticos y los ingenieros de software.
Convencionalmente, matemáticos usan 1 (uno) como el índice del primer elemento de un vector o primera columna/fila de una matriz.
Por una serie de razones (de sonido), los ingenieros de software usan 0 (cero) en su lugar. Y todos los lenguajes de programación convencionales modernos hacen lo mismo.
Usted ha encontrado probablemente una descripción de la estructura de datos del montón/algoritmos en un texto que fue escrito por alguien que prefiere la convención "matemática" a la convención de la "ingeniería de software". Luego has codificado el algoritmo en Java que (como la mayoría de los PL modernos) usa matrices basadas en cero.
Si le parece molesto, simplemente modifique su código para restar 1 de los valores de índice.
Tenga en cuenta que hay excepciones en el campo de la ingeniería de software:
- FORTRAN, COBOL, RPG y algunos otros lenguajes de programación - ver Wikipedia.
- Numeración de parámetros y columnas en JDBC.
- Numeración de nodos en DOM API.
(Las razones de peso que he hecho referencia a todas se reducen al hecho de que los algoritmos que implican cálculos del índice son generalmente más simple si el cero es el índice del primer elemento. This article lo explica.)
Dónde ¿Te surgió la idea de que el elemento de matriz cero no debería usarse? –
No debe ser nulo? –
¿Quién dice que 'array [0]' debe ser nulo? –