Matriz en estructura de datos (Operaciones)

⚡ Resumen inteligente

Un array en una estructura de datos almacena múltiples elementos del mismo tipo de datos en ubicaciones de memoria contiguas, cada una accesible mediante un índice. Este tutorial explica el concepto, por qué son importantes los arrays y cómo crearlos y operar con ellos. Python, C++, y Java con ejemplos.

  • 📦 Definición básica: Un array almacena varios elementos del mismo tipo en memoria adyacente, a los que se accede mediante un índice.
  • ⚡ Acceso rápido: Cualquier elemento se recupera en tiempo constante utilizando su índice.
  • 🛠️ Cinco Operafunciones: Insertar, eliminar, buscar, actualizar y recorrer forman parte del conjunto de herramientas de matrices.
  • 🌐 Interlingüístico: Python utiliza el módulo array; C++ y Java Declarar matrices de forma nativa con lógica manual.
  • 🤖 Relevancia de la IA: Los arreglos son la base de los tensores y matrices que impulsan los cálculos de aprendizaje automático.

Matriz en estructura de datos (Operaciones)

¿Qué es una matriz en la estructura de datos?

An matriz es una estructura de datos para almacenar más de un elemento de datos de un tipo de datos similar. Los elementos de una matriz se asignan en ubicaciones de memoria adyacentes, y estas ubicaciones se denominan elementos del array. El número total de elementos en un array es su de largo.

Se accede a cada elemento por su posición, y esta referencia se llama índice or subíndice.

Concepto de matriz

Diagrama conceptual de matrices

Diagrama conceptual de matrices

El diagrama anterior ilustra que:

  1. Una matriz es un contenedor de elementos.
  2. Los elementos tienen un valor y un tipo de datos específicos, como “ABC”, VERDADERO o FALSO.
  3. Cada elemento tiene su propio índice, que se utiliza para acceder a él.

Nota:

  • Los elementos se almacenan en ubicaciones de memoria contiguas.
  • Un índice siempre es menor que el número total de elementos de la matriz.
  • Cualquier variable declarada como un array puede almacenar múltiples valores.
  • Casi todos los lenguajes de programación comparten el mismo concepto de arreglos, pero difieren en la forma en que los declaran e inicializan.
  • Tres elementos permanecen comunes en todas las inicializaciones: el nombre del array, los elementos y el tipo de datos de los elementos.

El siguiente diagrama muestra la sintaxis para declarar un matriz en Python y C++, lo que demuestra que el concepto se mantiene igual aunque la sintaxis varíe ligeramente entre los idiomas.

Comprender la sintaxis de las matrices

Comprender la sintaxis de las matrices

  • Nombre de la matriz: necesario para facilitar la consulta de la colección de elementos.
  • Tipo de datos: Necesario para la verificación de tipos y la integridad de los datos.
  • Elementos: los valores de datos presentes en el array.

¿Por qué necesitamos arreglos?

  • Los arrays son ideales para almacenar múltiples valores en una sola variable.
  • Procesan muchos valores de forma fácil y rápida.
  • Ordenar y buscar valores es más fácil con matrices.

Creando una matriz en Python

In PythonLos arreglos se diferencian de las listas: una lista puede contener elementos de diferentes tipos de datos, mientras que un arreglo solo puede contener elementos del mismo tipo de datos. Python tiene un módulo separado para manejar matrices, llamado array, que debes importar antes de usarlo.

Nota: El array debe contener números reales, como enteros y números de coma flotante; no se permiten cadenas de texto.

El siguiente código crea una matriz de enteros en Python para almacenar saldos de cuentas:

import array
balance = array.array('i', [300, 200, 100])
print(balance)

Formas de declarar una matriz en Python

Puedes declarar una matriz en Python al inicializarlo utilizando la siguiente sintaxis:

arrayName = array.array(typecode, [array_items])

Sintaxis de matriz en Python

Sintaxis de matriz en Python

  1. Identificador: Especifique un nombre como lo hace habitualmente con las variables.
  2. Módulos: Python Tiene un módulo especial llamado “array” que debes importar primero.
  3. Método: El módulo array tiene un método para inicializar el array, que toma dos argumentos: el código de tipo y los elementos.
  4. Escriba el código: especifique el tipo de datos utilizando los códigos de tipo disponibles (consulte la tabla a continuación).
  5. Elementos: especifique los elementos de la matriz entre corchetes, por ejemplo [130, 450, 103].

La tabla que aparece a continuación enumera los códigos de tipo disponibles para los tipos de datos admitidos.

Código de tipo Tipo C Python Tipo Tamaño mínimo (bytes)
'segundo' char firmado int 1
'B' char sin firmar int 1
'tu' Py_UNICODE Personaje Unicode 2
'h' corto firmado int 2
'H' unsigned short int 2
'yo' firmado int int 2
'YO' int sin firmar int 2
'l' firmado largo int 4
'L' largo sin firmar int 4
'F' flotar flotar 4
're' doble flotar 8

¿Cómo acceder a un valor específico de una matriz?

Puedes acceder a cualquier elemento de la matriz utilizando su índice.

Sintaxis:

arrayName[indexNum]

Ejemplo:

balance[1]

Acceder a un elemento de matriz

Acceder a un elemento de matriz

Aquí, accedimos al segundo valor del array usando el índice 1. El resultado es 200, que es el segundo valor del array balance.

import array
balance = array.array('i', [300, 200, 100])
print(balance[1])

Salida:

200

Formación Operaciones en Python

El Python El módulo array proporciona funciones independientes para operaciones con arrays. Se trata de métodos destructivos, lo que significa que la modificación se guarda en la variable del array.

recuadro

Esta operación inserta uno o más elementos en una matriz al principio, al final o en cualquier índice dado. Requiere dos argumentos: índice y valor.

arrayName.insert(index, value)

Ejemplo: Para insertar un nuevo valor justo después del índice 1 (el valor 200), haga referencia al índice 2 en el método de inserción.

import array
balance = array.array('i', [300, 200, 100])
balance.insert(2, 150)
print(balance)

Salida:

array('i', [300, 200, 150, 100])

Eliminar

Esta operación elimina un elemento de una matriz por su valor, aceptando un único argumento. Tras su ejecución, los elementos se reordenan y se reasignan los índices.

arrayName.remove(value)

Ejemplo:

import array
balance = array.array('i', [300, 200, 150, 100])
balance.remove(150)
print(balance)

Salida:

array('i', [300, 200, 100])

Buscar

Esta operación busca un elemento por valor y devuelve su índice. Es un método no destructivo, por lo que no modifica los valores del array.

arrayName.index(value)

Ejemplo:

import array
balance = array.array('i', [300, 200, 150, 100])
print(balance.index(150))

Salida:

2

Actualizar

La actualización reemplaza el valor existente en un índice dado utilizando un operador de asignación simple.Python Los arreglos no tienen una update() método.)

arrayName[index] = value

Ejemplo: Para reemplazar 150 (en el índice 2) por 145:

import array
balance = array.array('i', [300, 200, 150, 100])
balance[2] = 145
print(balance)

Salida:

array('i', [300, 200, 145, 100])

Recorrer

Puedes atravesar una Python matriz usando un bucle:

import array
balance = array.array('i', [300, 200, 100])
for x in balance:
    print(x)

Salida:

300
200
100

Creando una matriz en C++

C++ es más flexible que Python al crear matrices. Puedes crear C++ arrays de tres maneras. El siguiente código crea una matriz de enteros en C++ para almacenar saldos de cuentas:

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  for (int i = 0; i < 3; i++)
    {
      cout << "value of i: " << balance[i] << endl;
    }
  return 0;
}

Formas de declarar una matriz en C++

Puedes declarar un array de tres maneras, dependiendo de los requisitos de tu programa.

Declaración por tamaño:

dataType arrayName[arraySize];   // e.g. int balance[3];

Declaración con elementos de matriz únicamente:

dataType arrayName[] = {array_items};   // e.g. int balance[] = { 300, 200, 100 };

Declaración por talla y artículos:

dataType arrayName[arraySize] = {array_items};   // e.g. int balance[3] = { 300, 200, 100 };

Cómo acceder a un valor específico de una matriz en C++?

Accediendo a un elemento de matriz

Accediendo a un elemento de matriz

#include <iostream>
using namespace std;

int main()
{
  int balance[3] = { 300, 200, 100 };
  cout << balance[1];
  return 0;
}

Salida:

200

Formación Operaciones en C++

Quitar 'Me gusta' Pythonen C++ Debes programar tú mismo la lógica para las operaciones de inserción, eliminación, búsqueda, actualización y recorrido.

recuadro

La lógica de inserción es la siguiente: recorrer los elementos del array, desplazarlos a un índice mayor y, a continuación, añadir un nuevo elemento en dicho índice. El ejemplo que se muestra a continuación tiene cinco elementos e inserta el valor 150 justo después del valor 200.

#include <iostream>
#include <stdio.h>

main() {
   int pos = 2;
   int size = 4;
   int balance[] = {300, 200, 100, 50, 0};

   printf("BEFORE INSERT:\n");
   for(int i = 0; i < 5; i++) {
      printf("%d\n", balance[i]);
   }

   /* SHIFT ITEMS TO A GREATER INDEX */
   for(int i = size; i >= pos; i--) {
       balance[i+1] = balance[i];
   }

   /* INSERT VALUE AT THE DESIRED INDEX */
   balance[pos] = 150;

   printf("AFTER INSERT:\n");
   for(int i = 0; i < 6; i++) {
      printf("%d\n", balance[i]);
   }
}

Formación Operaciones en Java

Vamos a crear un programa en Java que acepta el tamaño y los valores de los elementos del array por parte del usuario.

import java.util.Scanner;

public class AddElements {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("Enter the size of the array");
        int n = sc.nextInt();

        int arr[] = new int[n];

        System.out.println("Enter Elements in the array");
        for(int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        System.out.println("Elements in the array");
        for(int j = 0; j < n; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Modificar un elemento en un Java Formación

Actualizar un elemento por su índice.

import java.util.Scanner;

public class ModifyElement {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;
        Scanner sc = new Scanner(System.in);

        System.out.println("Array Elements Before modify");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }

        System.out.println("\nEnter the position to change");
        int pos = sc.nextInt();
        System.out.println("Enter the value");
        int val = sc.nextInt();

        arr[pos] = val;

        System.out.println("Array Elements After modify");
        for(int j = 0; j < length; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}

Elementos de acceso en un Java Formación

Imprime todos los elementos del array recorriéndolo.

public class AccessElements {
    public static void main(String[] args) {
        int arr[] = {1, 2, 3, 4, 5};
        int length = arr.length;

        System.out.println("Array Elements are:-");
        for(int i = 0; i < length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

Preguntas Frecuentes

Un array es una colección de elementos del mismo tipo de datos almacenados en ubicaciones de memoria contiguas. Se accede a cada elemento mediante un índice, lo que hace que los arrays sean eficientes para almacenar y recuperar múltiples valores relacionados.

A Python Una lista puede contener elementos de diferentes tipos de datos, mientras que un array (del módulo array) contiene elementos de un solo tipo de dato. Los arrays son más eficientes en cuanto al uso de memoria para grandes conjuntos de datos numéricos.

Las cinco operaciones básicas son insertar (agregar un elemento), eliminar (quitar un elemento), buscar (encontrar un elemento por valor), actualizar (cambiar un valor en un índice) y recorrer (visitar todos los elementos).

El acceso a un elemento mediante su índice es O(1) —tiempo constante— porque la dirección de memoria se calcula directamente a partir de la dirección base y el índice. La inserción y la eliminación pueden ser O(n) debido al desplazamiento de memoria.

El almacenamiento contiguo permite que el programa calcule la dirección de cualquier elemento instantáneamente a partir de la dirección base más el índice multiplicado por el tamaño del elemento. Esto es lo que proporciona a los arreglos su acceso aleatorio rápido y en tiempo constante.

Python Necesita el módulo de matriz y ofrece métodos de operación integrados. C++ y Java Declara matrices de forma nativa, pero requiere que tú mismo programes la lógica de inserción, eliminación y búsqueda. Java Los arrays también exponen una propiedad de longitud.

Los arreglos son la base de los vectores, matrices y tensores utilizados en la IA. Bibliotecas como NumPy y TensorFlow almacenan los datos de entrenamiento y los pesos del modelo como arreglos multidimensionales para realizar cálculos numéricos rápidos.

Sí. Los asistentes de codificación de IA detectan errores de índice fuera de rango y de índices fuera de límites, sugieren correcciones y explican por qué un índice excedió la longitud de la matriz, ayudanping Los principiantes resuelven rápidamente los errores comunes de los arrays.

Resumir este post con: