Articles

GeeksforGeeks

Una matriz es una colección de elementos almacenados en ubicaciones de memoria contiguas. La idea es almacenar varios artículos del mismo tipo juntos. Esto hace que sea más fácil calcular la posición de cada elemento simplemente agregando un desplazamiento a un valor base, es decir, la ubicación de memoria del primer elemento de la matriz (generalmente denotada por el nombre de la matriz). El valor base es el índice 0 y la diferencia entre los dos índices es el desplazamiento.

Para simplificar, podemos pensar en una matriz como una flota de escaleras donde en cada escalón se coloca un valor (digamos uno de tus amigos). Aquí, puedes identificar la ubicación de cualquiera de tus amigos simplemente sabiendo el número de pasos en los que están. Recuerde: «La ubicación del siguiente índice depende del tipo de datos que utilicemos».

array

La imagen de arriba se puede ver como una vista de nivel superior de una escalera donde se encuentra en la base de la escalera. Cada elemento se puede identificar de forma única por su índice en el array (de manera similar a como puedes identificar a tus amigos por el paso en el que estaban en el ejemplo anterior).

El tamaño de la matriz

En el lenguaje C La matriz tiene un significado de tamaño fijo una vez que se le da el tamaño, no se puede cambiar, es decir, no se puede reducir ni expandir. La razón fue que para expandirnos si cambiamos el tamaño no podemos estar seguros ( no es posible cada vez) de que obtengamos la siguiente ubicación de memoria como libre. La reducción no funcionará porque la matriz, cuando se declara, obtiene memoria de forma estática, y por lo tanto el compilador es el único que la destruye.

Tipos de indexación en una matriz:

  • 0 (indexación basada en cero): El primer elemento de la matriz está indexado por un subíndice de 0
  • 1 (indexación basada en uno): El primer elemento de la matriz está indexado por el subíndice de 1
  • n (indexación basada en n): El índice base de una matriz se puede elegir libremente. Por lo general, los lenguajes de programación que permiten la indexación basada en n también permiten valores de índice negativos, y otros tipos de datos escalares como enumeraciones o caracteres pueden usarse como índice de matriz.

Ventajas de usar arrays:

  • Los arrays permiten el acceso aleatorio a los elementos. Esto hace que el acceso a los elementos por posición sea más rápido.
  • Los arrays tienen una mejor ubicación de caché que puede hacer una gran diferencia en el rendimiento.Los arrays
  • representan varios elementos de datos del mismo tipo utilizando un solo nombre.

Desventajas de usar arrays:
No puede cambiar el tamaño, es decir, una vez que haya declarado la matriz, no puede cambiar su tamaño debido a la memoria estática que se le ha asignado. Aquí la inserción y eliminación son difíciles, ya que los elementos se almacenan en ubicaciones de memoria consecutivas y la operación de cambio también es costosa.
Ahora, si tomamos un ejemplo de implementación de la pila de estructura de datos utilizando una matriz, hay algún defecto obvio.

Tomemos la operación POP de la pila. El algoritmo sería algo así.

  1. Comprobar el flujo inferior de la pila
  2. Decrementar la parte superior en 1

Así que lo que estamos haciendo es que el puntero al elemento superior se decrementa, lo que significa que estamos limitando nuestra vista en realidad, ese elemento permanece allí hablando del espacio de memoria si tiene algún tipo de datos primitivo, podría estar bien, pero el objeto de una matriz tomaría mucha memoria.

Ejemplos –

// A character array in C/C++/Javachar arr1 = {'g', 'e', 'e', 'k', 's'};// An Integer array in C/C++/Javaint arr2 = {10, 20, 30, 40, 50};// Item at i'th index in array is typically accessed// as "arr". For example arr1 gives us 'g'// and arr2 gives us 40.

Por lo general, una matriz de caracteres se denomina ‘cadena’, mientras que una matriz de ints o flotadores se denomina simplemente una matriz.

Aplicaciones en matriz

  1. La matriz almacena elementos de datos del mismo tipo de datos.Los arrays
  2. se pueden usar para la programación de CPU.
  3. Se utiliza para implementar otras estructuras de datos como Pilas, Colas, Montones, tablas Hash, etc.

Si te gustan los GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contribute.geeksforgeeks.org o envíe su artículo a [email protected]. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.