Matriz en estructura de datos: explicación, función y ejemplos
Publicado: 2021-06-21Las estructuras de datos han demostrado ser una parte crucial de casi todos los lenguajes de programación que se han aplicado ampliamente a la mayoría de los programas informáticos. Es a través de las estructuras de datos que los programas pueden administrar y acceder a los datos de manera efectiva, ya que acceder y almacenar datos individuales por separado es un proceso que requiere mucho tiempo. Los algoritmos están diseñados especialmente para crear operaciones específicas necesarias en una estructura de datos. Por lo tanto, las estructuras de datos y los algoritmos juntos sientan las bases de aplicaciones y programas complejos.
En este artículo, nos centraremos en un tipo de estructura de datos, es decir, matriz.
Una matriz es un tipo de estructura de datos donde los elementos o los datos se almacenan en ubicaciones contiguas. Siempre que el usuario tenga un conjunto de datos con el mismo tipo de datos, la estructura de datos de matriz es la opción para organizar esos datos. El tamaño de una matriz depende del tamaño de los datos. Antes de que los elementos se almacenen en una matriz, se debe definir el tamaño de la matriz para que incorpore todos los elementos de manera efectiva. Cada elemento que se almacena en una matriz tiene un valor de índice asignado que ayuda a identificar la ubicación de ese elemento en la matriz. El primer elemento de la matriz tiene un valor de índice de cero.
Los términos importantes asociados con una estructura de datos de matriz son:
- Elemento : Elemento representa cada objeto o elemento almacenado en la estructura de datos.
- Índice : el índice representa la ubicación del elemento en una matriz. Tiene un valor numérico.
El tamaño de una matriz cambia con diferentes lenguajes de programación. Según el tamaño, una matriz puede ser de dos tipos: una matriz estática y una matriz dinámica.
Tabla de contenido
1. Matriz estática:
Estos tipos de arreglos tienen sus tamaños predefinidos durante su creación. Debido a esto, las matrices estáticas también se conocen como matrices fijas o matrices de longitud fija. La matriz se puede definir de dos maneras. Los elementos de la matriz se pueden definir al crear la matriz o el tamaño de la matriz se puede definir al crear una matriz. En este último caso, no es necesario especificar los elementos. Los valores predeterminados se pueden asignar a una matriz no inicializada o los valores que quedan en la memoria de asignaciones anteriores.
La matriz no puede reducirse ni expandirse una vez que se define el tamaño. A medida que se asigna memoria durante la declaración de una matriz, solo el compilador puede destruir la matriz. La adición de un elemento no es posible ya que el usuario no está seguro de si hay memoria libre presente para asignar al siguiente elemento.
La siguiente tabla muestra el ejemplo de matrices utilizadas en diferentes lenguajes de programación.
Lenguaje de programación | Contenidos de matriz definidos | Tamaño definido de la matriz sin contenido |
C++ | marcas int[] = {10, 20, 30}; | marcas int[3]; |
C# | int[] marcas = {10, 20, 30}; | int[] marcas = = new int[3]; |
Java | int[] marcas = {10, 20, 30}; | int[] marcas = = new int[3]; |
JavaScript | var marcas = [10, 20, 30]; | var marcas = new Array(3); |
Pitón | puntos = [10, 20, 30] | puntos = [Ninguno] * 3 |
Rápido | valores var:[Int] = [10, 20, 30] | var marcas: [Int] = [Int](repetir: 0, contar: 3) |
2. Matriz dinámica
Como sugiere el nombre, la matriz es dinámica, lo que significa que los elementos se pueden agregar o eliminar durante el tiempo de ejecución. En comparación con las matrices estáticas cuya longitud es fija, las matrices dinámicas no tienen una longitud o tamaño fijo de la matriz. Las funciones de biblioteca estándar o las funciones integradas están disponibles en la mayoría de los lenguajes de programación para crear y administrar matrices dinámicas.
La siguiente tabla muestra la creación de una matriz en diferentes lenguajes de programación.
Lenguaje de programación | Clase | Adición de elemento | Eliminación de elemento |
C++ | #incluir <lista> estándar::lista | insertar | borrar |
C# | System.Collections.Generic.List | Agregar | Eliminar |
Java | java.util.ArrayList | agregar | retirar |
JavaScript | Formación | empujar, empalmar | estallar, empalmar |
Pitón | Lista | adjuntar | retirar |
Rápido | Formación | adjuntar | retirar |
Representación de una matriz
La representación de una matriz varía según su implementación en diferentes lenguajes de programación. Siendo la matriz una parte importante de la estructura de datos de python , se ha mostrado una ilustración en el lenguaje de programación python.
En la estructura de datos de Python, las matrices se manejan a través de la matriz de palabras clave . Cada vez que se utiliza la matriz de palabras clave, el usuario tiene que almacenar elementos de los mismos tipos de datos.
Fuente
Figura 1: Un ejemplo de una matriz
Según la Figura 1, la ilustración de la matriz muestra que
- El tamaño de la matriz es 10, lo que significa que se pueden almacenar 9 elementos en la matriz.
- El valor del índice se ha mencionado arriba de la matriz que comienza con el valor de 0.
- Los elementos almacenados en la matriz pueden ser de cualquier tipo de datos y se puede acceder al elemento a través de su valor de índice.
En la Figura 2 se muestra otra ilustración , donde se describe la sintaxis de python y C++.
Fuente
Figura 2 : Declaración de matriz usando python y C++ (
Propiedades de una matriz
Una estructura de datos de matriz tiene varias propiedades:
- Los elementos almacenados dentro de una matriz tienen los mismos tipos de datos y el mismo tamaño, es decir, el tipo de datos de int tendrá un tamaño de 4 bytes.
- La ubicación de memoria contigua se utiliza para almacenar los elementos de una estructura de datos. La memoria más pequeña se asigna al primer elemento de la matriz.
- Los valores de índice se utilizan para encontrar la ubicación de los elementos en una matriz. El índice comienza con 0 y siempre es menor que el número total de elementos en la matriz.
- El acceso aleatorio de los elementos de la matriz es posible debido al valor de índice disponible. La dirección del elemento se puede calcular a través de la dirección base agregada a un valor de desplazamiento.
- El concepto de matriz sigue siendo el mismo en todos los lenguajes de programación. Solo varían la inicialización y la declaración.
- El nombre de la matriz, los elementos y el tipo de datos son las tres partes que serán comunes en todos los idiomas.
Crear una matriz
La creación de una matriz en la estructura de datos de Python se muestra a continuación.
- El módulo de matriz en la estructura de datos de Python se puede importar para crear una matriz.
- array(data_type, value_list ) es la sintaxis a través de la cual se puede crear una matriz en la estructura de datos de Python .
- El tipo de datos debe ser números reales o flotantes. Las cadenas no están permitidas en python.
La figura 2 muestra cómo crear una matriz en python. Un ejemplo de un código para mostrar cómo se importa un módulo de matriz en python
matriz de importación
marcas = array.array('i', [100,200,300])
imprimir (marcas)
La declaración de un array se puede realizar a través de
arrayName = array.array(escriba el código para el tipo de datos, [array,items])
Esto se puede representar en la figura 3.
Fuente
Figura 3: declaración de matriz en python
Términos importantes utilizados en la creación de una matriz:
- Identificador: un nombre que debe especificarse como un nombre para las variables
- Módulo: el módulo especial llamado matriz debe importarse en python.
- Método: Es un método específico para inicializar una matriz en python. Se tomaron dos argumentos, código tipo y elementos.
- Código de tipo: El tipo de datos debe especificarse con el código de tipo disponible.
- Elementos: los elementos de la matriz deben especificarse entre corchetes, por ejemplo [200,400,100.]
El código de tipo disponible se muestra a continuación
Operaciones de matriz
Con la disponibilidad de estructuras de datos y algoritmos, se pueden realizar varias operaciones en cualquier tipo de estructura de datos. Una estructura de datos de matriz puede tener operaciones como adición, eliminación, acceso y actualización de un elemento.
Las operaciones que se pueden llevar a cabo en una matriz de la estructura de datos de python se enumeran a continuación.
1. Adición de un elemento a una matriz
- La función insert() incorporada se usa para agregar elementos a una matriz.
- Sintaxis utilizada : arrayName.insert(índice, valor)
- Se puede agregar uno o más de un elemento a la matriz a través de la función insert().
- Los elementos se pueden agregar al comienzo de la matriz o en cualquier posición específica usando la función Input: append().
matriz de importación
marcas = array.array('i', [200,500,600])
marcas.insertar(1, 150)
Salida: matriz ('i', [200,150,500,600])
A continuación se muestra un ejemplo con un código tomado de
Salida del código:
Fuente
2. Eliminación de un elemento en una matriz
- Un elemento se puede eliminar de la matriz a través de su valor.
- Sintaxis utilizada: arrayName.remove(valor)
- Ejemplo: eliminar el valor de 250 después de su adición en la matriz que tiene los elementos 100, 300, 200, 500 y 800.
Aporte:
matriz de importación
marcas = array.array('i', [100,300,200,500,800])
marcas.insertar(1, 250)
imprimir (marcas)
marcas.remove(250)
Salida: matriz ('i', [100,300,200,500,800])
Un ejemplo de un código tomado de
Fuente
Salida del código:
3. Acceder a elementos en una matriz
- El operador de índice [ ] se utiliza para acceder a los elementos de una matriz.
- El número de índice se utiliza para acceder a cualquier elemento de la matriz .
A continuación se muestra un ejemplo de un código tomado de
Salida del código:
Fuente
4. Elemento de búsqueda en una matriz.
- El método index() incorporado se usa para buscar un elemento en una matriz.
- La función devuelve el valor de índice del elemento que se va a buscar.
- Ejemplo: buscar un elemento 250 en la matriz de elementos 100, 250, 300, 200, 500 y 800.
Entrada: matriz de importación
marcas = array.array('I', [100,250,300,200,500,800])
imprimir(marcas.index(250))
Salida: 1
Un código para buscar un elemento en una matriz
La salida del código es
Fuente
3. Actualizar elementos en una matriz
- El proceso de actualización de un elemento es similar al método de inserción con la única diferencia de que, mientras se actualiza, el valor existente se reemplazará en el índice dado.
- El nuevo valor se reasigna al índice para actualizar el elemento en una matriz.
- Ejemplo: actualizar un elemento 250 con 350 en la matriz de elementos 100, 250, 300, 200, 500 y 800.
Entrada: matriz de importación
marcas = array.array('i', [100,250,300,200,500,800])
puntos[1] = 350
Producción:
matriz('i', [100,350,300,200,500,800])
A continuación se muestra un código que muestra la actualización de un elemento.
La salida del código es
Fuente
ventajas de la matriz
- El almacenamiento de múltiples valores en una sola variable es posible en lugar de crear variables separadas para cada elemento.
- Los valores múltiples se pueden procesar fácil y rápidamente con el uso de matrices.
- Los elementos de la matriz se pueden ordenar y buscar de una manera más rápida.
Conclusión
El artículo discutió un tipo especial de estructura de datos, es decir, la matriz y sus operaciones asociadas. Con los conceptos básicos, se podrían construir programas más complejos enfocados en problemas de la vida real. Si desea fortalecer las bases de sus conceptos de estructura de datos en python, puede consultar el siguiente curso del Programa Executive PG en Data Science de upGrad. El curso está certificado por IIIT-Bangalore y tiene más de 14 herramientas y lenguajes de programación para preparar su viaje hacia la industria. Está especialmente diseñado para profesionales de nivel de entrada dentro del grupo de edad de 21 a 45 años de edad. Así que no dejes de aprender aquí y hazte con el lenguaje y su aplicación en el mundo del aprendizaje automático a través del curso de upGrad. En caso de que tengas alguna duda, nuestro equipo de asistencia estará allí para ayudarte.
Una matriz es una poderosa estructura de datos lineales. Sin embargo, tiene algunas ventajas y desventajas que se mencionan a continuación: A continuación se ilustra la diferencia entre una matriz y una lista. La estructura de datos de matriz tiene muchas aplicaciones en la vida real y también se utiliza como base para implementar otras estructuras de datos definidas por el usuario. Algunas de las principales aplicaciones de los arreglos son las siguientes:¿Cuáles son las ventajas y desventajas de una matriz?
Ventajas
1. En una matriz, se puede acceder fácilmente a los elementos por sus números de índice.
2. Los arreglos se pueden usar para almacenar múltiples entidades similares.
3. La operación de búsqueda es muy conveniente. Se puede hacer en tiempo O(n) y O(log n) en una matriz ordenada, donde n es el número de elementos.
Desventajas
1. Dado que la memoria se asigna estáticamente en una matriz, el tamaño de la matriz no se puede modificar.
2. Es homogéneo, es decir, solo los elementos que tienen un tipo de datos similar pueden almacenarse en una matriz. ¿Diferenciar entre una matriz y una lista?
matriz -
1. La estructura de datos de la matriz es homogénea, es decir, solo los elementos con tipos de datos similares se pueden almacenar en una matriz.
2. Los módulos deben importarse antes de usar la matriz.
3. Las operaciones aritméticas son de aplicación directa.
4. Preferido para datos más grandes.
4. Mucho más compacto y consume menos memoria.
Lista -
1. La lista es heterogénea y puede almacenar elementos de múltiples tipos de datos en su interior.
2. No es necesario importar módulos, ya que está integrado en Python.
3. Las operaciones aritméticas no se pueden operar directamente.
4. Preferido para datos más pequeños.
5. El consumo de memoria es mayor. Describa las principales aplicaciones de los arreglos.
1. Las matrices se utilizan para implementar y realizar operaciones matriciales. Las matrices se utilizan en gran medida en estudios geológicos y experimentos científicos y de investigación.
2. Se implementan varias estructuras de datos definidas por el usuario utilizando las estructuras de datos de matriz. Estos incluyen pilas, colas, montones, tablas hash y listas.
3. Los programas usan arreglos para regular el flujo de control en lugar de usar las sentencias elif tradicionales, que son comparativamente largas.
4. Los algoritmos escritos para los procesos de programación de la CPU también utilizan la estructura de datos de matriz para mejorar el rendimiento de la CPU.
5. Los gráficos usan las listas de adyacencia como una de sus implementaciones. Los vectores (aplicación de matriz) se utilizan para crear estas listas de adyacencia.