Array nella struttura dati (Operazioni)

⚡ Riepilogo intelligente

Un array in una struttura dati memorizza più elementi dello stesso tipo di dati in posizioni di memoria contigue, ciascuna raggiungibile tramite un indice. Questo tutorial spiega il concetto, perché gli array sono importanti e come crearli e utilizzarli. Python, C++e Java con esempi.

  • 📦 Definizione di base: Un array contiene diversi elementi dello stesso tipo in aree di memoria adiacenti, accessibili tramite indice.
  • ⚡ Accesso rapido: Ogni elemento viene recuperato in tempo costante utilizzando il suo indice.
  • ️ Cinque Operazioni: Inserimento, eliminazione, ricerca, aggiornamento e attraversamento tramite il toolkit degli array.
  • 🌐 Interlinguistico: Python utilizza il modulo array; C++ and Java Dichiarare gli array in modo nativo con logica manuale.
  • 🤖 Rilevanza dell'IA: Gli array sono alla base dei tensori e delle matrici che alimentano i calcoli dell'apprendimento automatico.

Array nella struttura dati (Operazioni)

Cos'è l'array nella struttura dei dati?

An schieramento è una struttura dati per memorizzare più di un elemento dati di un tipo dati simile. Gli elementi di un array vengono allocati in posizioni di memoria adiacenti, e queste posizioni sono chiamate elementi dell'array. Il numero totale di elementi in un array è il suo lunghezza.

A ciascun elemento si accede tramite la sua posizione, e questo riferimento è chiamato Index or pedice.

Concetto di matrice

Diagramma concettuale degli array

Diagramma concettuale degli array

Il diagramma sopra illustra che:

  1. Un array è un contenitore di elementi.
  2. Gli elementi hanno un valore e un tipo di dati specifici, come "ABC", VERO o FALSO.
  3. Ciascun elemento ha un proprio indice, che viene utilizzato per accedervi.

Nota:

  • Gli elementi vengono memorizzati in posizioni di memoria contigue.
  • Un indice è sempre inferiore al numero totale di elementi dell'array.
  • Qualsiasi variabile dichiarata come array può memorizzare più valori.
  • Quasi tutti i linguaggi di programmazione condividono il concetto di array, ma differiscono nel modo in cui li dichiarano e li inizializzano.
  • Tre elementi rimangono comuni a tutte le inizializzazioni: il nome dell'array, gli elementi e il tipo di dati degli elementi.

Il seguente diagramma mostra la sintassi per dichiarare un matrice dentro Python and C++, dimostrando che il concetto rimane lo stesso anche se la sintassi varia leggermente tra le diverse lingue.

Comprendere la sintassi degli array

Comprendere la sintassi degli array

  • Nome della matrice: necessario per una facile consultazione della raccolta di elementi.
  • Tipo di dati: Necessario per il controllo dei tipi e l'integrità dei dati.
  • elementi: i valori dei dati presenti nell'array.

Perché abbiamo bisogno degli array?

  • Gli array sono ideali per memorizzare più valori in una singola variabile.
  • Elaborano molti valori in modo semplice e rapido.
  • Con gli array, ordinare e cercare i valori è più semplice.

Creazione di un array in Python

In PythonGli array si differenziano dalle liste: una lista può contenere elementi di diversi tipi di dati, mentre un array può contenere solo elementi dello stesso tipo di dati. Python ha un modulo separato per la gestione degli array, chiamato array, che devi importare prima di poterlo utilizzare.

Nota: L'array deve contenere numeri reali, come numeri interi e numeri in virgola mobile; le stringhe non sono ammesse.

Il seguente codice crea un array di interi in Python per memorizzare i saldi dei conti:

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

Modi per dichiarare un array Python

Puoi dichiarare un array in Python durante l'inizializzazione utilizzando la seguente sintassi:

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

Sintassi di Array in Python

Sintassi di Array in Python

  1. Identifier: specifica un nome come fai di solito per le variabili.
  2. Moduli: Python ha un modulo speciale chiamato "array" che devi importare prima.
  3. Metodo: Il modulo array dispone di un metodo per inizializzare l'array, che accetta due argomenti: typecode ed elementi.
  4. Tipo di codice: Specificare il tipo di dati utilizzando i codici tipo disponibili (vedere la tabella sottostante).
  5. elementi: specificare gli elementi dell'array tra parentesi quadre, ad esempio [130, 450, 103].

La tabella seguente elenca i codici tipo disponibili per i tipi di dati supportati.

Digita il codice Tipo C Python Tipo Dimensione minima (byte)
'b' firmato char int 1
"B" carattere non firmato int 1
'U' Py_UNICODE Carattere Unicode 2
'h' firmato breve int 2
'H' corto non firmato int 2
'io' firmato int 2
'IO' int int 2
'L' firmato a lungo int 4
'L' non firmato a lungo int 4
'F' galleggiante galleggiante 4
'D' doppio galleggiante 8

Come accedere a uno specifico valore di un array?

È possibile accedere a qualsiasi elemento di un array utilizzando il suo indice.

Sintassi:

arrayName[indexNum]

Esempio:

balance[1]

Accedi a un elemento dell'array

Accedi a un elemento dell'array

Qui abbiamo acceduto al secondo valore dell'array utilizzando l'indice 1. L'output è 200, che è il secondo valore dell'array balance.

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

Produzione:

200

Italia Operazioni in Python

Migliori Python Il modulo array fornisce funzioni separate per le operazioni sugli array. Si tratta di metodi distruttivi, il che significa che la modifica viene salvata nella variabile array.

inserire

Questa operazione inserisce uno o più elementi in un array all'inizio, alla fine o in un indice qualsiasi specificato. Richiede due argomenti: indice e valore.

arrayName.insert(index, value)

Esempio: Per inserire un nuovo valore subito dopo l'indice 1 (il valore 200), fare riferimento all'indice 2 nel metodo insert.

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

Produzione:

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

Elimina

Questa operazione elimina un elemento da un array in base al suo valore, accettando un singolo argomento. Al termine dell'esecuzione, gli elementi vengono riordinati e gli indici riassegnati.

arrayName.remove(value)

Esempio:

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

Produzione:

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

Cerca

Questa operazione cerca un elemento in base al suo valore e ne restituisce l'indice. Si tratta di un metodo non distruttivo, quindi non modifica i valori dell'array.

arrayName.index(value)

Esempio:

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

Produzione:

2

Aggiornanento

L'aggiornamento sostituisce il valore esistente in un dato indice utilizzando un semplice operatore di assegnazione.Python gli array non hanno un update() metodo.)

arrayName[index] = value

Esempio: Per sostituire 150 (all'indice 2) con 145:

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

Produzione:

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

Traverse

Puoi attraversare un Python array utilizzando un ciclo:

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

Produzione:

300
200
100

Creazione di un array in C++

C++ è più flessibile di Python durante la creazione di array. È possibile creare C++ array in tre modi. Il seguente codice crea un array di interi in C++ per memorizzare i saldi dei conti:

#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;
}

Modi per dichiarare un array C++

È possibile dichiarare un array in tre modi, a seconda delle esigenze del programma.

Dichiarazione in base alla taglia:

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

Dichiarazione contenente solo elementi array:

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

Dichiarazione per taglia e articoli:

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

Come accedere a uno specifico valore di array in C++?

Accesso a un elemento dell'array

Accesso a un elemento dell'array

#include <iostream>
using namespace std;

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

Produzione:

200

Italia Operazioni in C++

a differenza di Pythonin C++ È necessario programmare autonomamente la logica per le operazioni di inserimento, cancellazione, ricerca, aggiornamento e attraversamento.

inserire

La logica di inserimento è la seguente: scorri gli elementi dell'array, spostali a un indice maggiore, quindi aggiungi un nuovo elemento all'indice specificato. L'esempio seguente ha cinque elementi e inserisce 150 subito dopo il valore 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]);
   }
}

Italia Operazioni in Java

Creiamo un programma in Java che accetta dall'utente la dimensione e i valori degli elementi dell'array.

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] + " ");
        }
    }
}

Modificare un elemento in un Java Italia

Aggiorna un elemento tramite il suo indice.

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] + " ");
        }
    }
}

Accedere agli elementi in un Java Italia

Stampa tutti gli elementi dell'array scorrendolo.

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] + " ");
        }
    }
}

DOMANDE FREQUENTI

Un array è una raccolta di elementi dello stesso tipo di dati memorizzati in posizioni di memoria contigue. Ciascun elemento viene acceduto tramite un indice, il che rende gli array efficienti per memorizzare e recuperare più valori correlati.

A Python Una lista può contenere elementi di diversi tipi di dati, mentre un array (del modulo array) contiene elementi di un singolo tipo di dati. Gli array sono più efficienti in termini di memoria per grandi insiemi di dati numerici.

Le cinque operazioni di base sono inserimento (aggiunta di un elemento), eliminazione (rimozione di un elemento), ricerca (ricerca di un elemento in base al suo valore), aggiornamento (modifica di un valore in corrispondenza di un indice) e attraversamento (visita di ogni elemento).

L'accesso a un elemento tramite indice ha complessità O(1) — tempo costante — poiché l'indirizzo di memoria viene calcolato direttamente dall'indirizzo base e dall'indice. L'inserimento e la cancellazione possono avere complessità O(n) a causa dello scorrimento.

La memorizzazione contigua consente al programma di calcolare istantaneamente l'indirizzo di qualsiasi elemento a partire dall'indirizzo base più l'indice moltiplicato per la dimensione dell'elemento. È questo che conferisce agli array la loro velocità di accesso casuale a tempo costante.

Python Richiede il modulo array e offre metodi operativi integrati. C++ and Java È possibile dichiarare gli array in modo nativo, ma è necessario implementare autonomamente la logica di inserimento, eliminazione e ricerca. Java Gli array espongono anche una proprietà di lunghezza.

Gli array sono alla base dei vettori, delle matrici e dei tensori utilizzati nell'intelligenza artificiale. Librerie come NumPy e TensorFlow memorizzano i dati di addestramento e i pesi del modello come array multidimensionali per un'elaborazione numerica rapida.

Sì. Gli assistenti di programmazione basati sull'IA rilevano errori di indice fuori uno e fuori dai limiti, suggeriscono correzioni e spiegano perché un indice ha superato la lunghezza dell'array, aiutanoping I principianti risolvono rapidamente i bug comuni degli array.

Riassumi questo post con: