Array nella struttura dei dati: spiegazione, funzione ed esempi
Pubblicato: 2021-06-21Le strutture dati si sono rivelate una parte cruciale di quasi tutti i linguaggi di programmazione che sono stati ampiamente applicati alla maggior parte dei programmi per computer. È attraverso le strutture dati che i dati possono essere gestiti in modo efficace e accessibili dai programmi poiché l'accesso e la memorizzazione di singoli dati separatamente è un processo che richiede tempo. Gli algoritmi sono progettati appositamente per creare operazioni specifiche necessarie in una struttura dati. Pertanto, le strutture dati e gli algoritmi insieme gettano le basi di applicazioni e programmi complessi.
In questo articolo ci concentreremo su un tipo di struttura dati, ovvero Array.
Un array è un tipo di struttura dati in cui gli elementi oi dati sono archiviati in posizioni contigue. Ogni volta che l'utente ha un set di dati con lo stesso tipo di dati, la struttura dei dati dell'array è l'opzione per organizzare quei dati. La dimensione di un array dipende dalla dimensione dei dati. Prima che gli elementi vengano archiviati in un array, la dimensione dell'array deve essere definita in modo che incorpori tutti gli elementi in modo efficace. A ogni elemento memorizzato in un array è assegnato un valore di indice che aiuta a identificare la posizione di quell'elemento nell'array. Il primo elemento della matrice ha un valore di indice pari a zero.
I termini importanti associati a una struttura dati array sono:
- Elemento : l'elemento rappresenta ogni oggetto o elemento archiviato nella struttura dati.
- Indice : Indice rappresenta la posizione dell'elemento in una matrice. Ha un valore numerico.
La dimensione di un array cambia con diversi linguaggi di programmazione. In base alle dimensioni, un array può essere di due tipi: un array statico e uno dinamico.
Sommario
1. Matrice statica:
Questi tipi di array hanno le loro dimensioni predefinite durante la loro creazione. Per questo motivo, gli array statici sono anche noti come array fissi o array a lunghezza fissa. L'array può essere definito in due modi. È possibile definire gli elementi dell'array durante la creazione dell'array o la dimensione dell'array durante la creazione di un array. In quest'ultimo caso, non è necessario specificare gli elementi. I valori predefiniti possono essere allocati a un array non inizializzato o valori lasciati in memoria da allocazioni precedenti.
L'array non può ridursi o espandersi una volta definita la dimensione. Poiché la memoria viene allocata durante la dichiarazione di un array, è solo il compilatore che può distruggere l'array. L'aggiunta di un elemento non è possibile in quanto l'utente non è sicuro se sia presente memoria libera da allocare all'elemento successivo.
La tabella seguente mostra l'esempio di array utilizzati in diversi linguaggi di programmazione.
Linguaggio di programmazione | Contenuto dell'array definito | Dimensione definita dell'array senza contenuto |
C++ | int segni[] = {10, 20, 30}; | segni di int[3]; |
C# | int[] segni = {10, 20, 30}; | int[] segni = = nuovo int[3]; |
Giava | int[] segni = {10, 20, 30}; | int[] segni = = nuovo int[3]; |
JavaScript | var segni = [10, 20, 30]; | var mark = new Array(3); |
Pitone | voti = [10, 20, 30] | voti = [Nessuno] * 3 |
Veloce | var valori:[Int] = [10, 20, 30] | var mark: [Int] = [Int](ripetuto: 0, conteggio: 3) |
2. Matrice dinamica
Come suggerisce il nome, l'array è dinamico, il che significa che gli elementi possono essere aggiunti o rimossi durante il runtime. Rispetto agli array statici la cui lunghezza è fissa, gli array dinamici non hanno una lunghezza o una dimensione fissa dell'array. Nella maggior parte dei linguaggi di programmazione sono disponibili funzioni di libreria standard o funzioni integrate per creare e gestire array dinamici.
La tabella seguente mostra la creazione di un array in diversi linguaggi di programmazione
Linguaggio di programmazione | Classe | Aggiunta di elemento | Rimozione dell'elemento |
C++ | #includi <elenco> std::elenco | inserire | cancellare |
C# | System.Collections.Generic.List | Aggiungere | Rimuovere |
Giava | java.util.ArrayList | Inserisci | rimuovere |
JavaScript | Vettore | spingere, unire | schioccare, giuntare |
Pitone | Elenco | aggiungere | rimuovere |
Veloce | Vettore | aggiungere | rimuovere |
Rappresentazione di un array
La rappresentazione di un array varia in base alla sua implementazione nei diversi linguaggi di programmazione. Essendo l'array una parte importante della struttura dati di Python , è stata mostrata un'illustrazione nel linguaggio di programmazione Python.
Nella struttura dati di Python gli array vengono gestiti tramite la parola chiave array . Ogni volta che viene utilizzata la matrice di parole chiave, l'utente deve memorizzare elementi degli stessi tipi di dati.
Fonte
Figura 1: un esempio di una matrice
Come nella Figura 1, l'illustrazione dell'array lo mostra
- La dimensione dell'array è 10, il che significa che è possibile memorizzare 9 elementi nell'array.
- Il valore dell'indice è stato menzionato sopra l'array che inizia con il valore di 0.
- Gli elementi archiviati nell'array possono essere di qualsiasi tipo di dati ed è possibile accedere all'elemento tramite il relativo valore di indice.
Un'altra illustrazione è stata mostrata nella Figura 2, dove è stata descritta la sintassi di Python e C++.
Fonte
Figura 2 : Dichiarazione di array usando Python e C++ (
Proprietà di un array
Una struttura dati array ha diverse proprietà:
- Gli elementi memorizzati all'interno di un array hanno gli stessi tipi di dati e la stessa dimensione, ovvero il tipo di dati di int avrà una dimensione di 4 byte.
- La posizione di memoria contigua viene utilizzata per memorizzare gli elementi di una struttura dati. La memoria più piccola viene allocata al primo elemento dell'array.
- I valori di indice vengono utilizzati per trovare la posizione degli elementi in una matrice. L'indice inizia con 0 ed è sempre inferiore al numero totale di elementi nell'array.
- L'accesso casuale degli elementi nell'array è possibile grazie al valore dell'indice disponibile. L'indirizzo dell'elemento può essere calcolato tramite l'indirizzo base sommato ad un valore di offset.
- Il concetto di array rimane lo stesso in tutti i linguaggi di programmazione. Solo l'inizializzazione e la dichiarazione variano.
- Il nome dell'array, gli elementi e il tipo di dati sono le tre parti comuni a tutte le lingue.
Creazione di una matrice
Di seguito è stata mostrata la creazione di un array nella struttura dati di Python .
- Il modulo array nella struttura dati python può essere importato per creare un array.
- array(data_type, value_list ) è la sintassi attraverso la quale è possibile creare un array nella struttura dati python .
- Il tipo di dati dovrebbe essere numeri interi reali o float. Le stringhe non sono consentite in Python.
La figura 2 mostra come creare un array in Python. Un esempio di codice per mostrare come un modulo array viene importato in Python
matrice di importazione
segni = array.array('i', [100,200,300])
stampa (segni)
La dichiarazione di un array può essere eseguita tramite
arrayName = array.array(digitare il codice per il tipo di dati, [array,elementi])
Questo può essere rappresentato nella Figura 3
Fonte
Figura 3: dichiarazione di array in Python
Termini importanti utilizzati nella creazione di un array:
- Identificatore: un nome che deve essere specificato come un nome per le variabili
- Modulo: il modulo speciale chiamato array deve essere importato in python.
- Metodo: è un metodo specifico per inizializzare un array in Python. Due argomenti hanno mangiato, typecode ed elementi.
- Codice del tipo: il tipo di dati deve essere specificato con il codice del tipo disponibile.
- Elementi: gli elementi dell'array devono essere specificati tra parentesi quadre, ad esempio [200,400,100.]
Il codice del tipo disponibile è mostrato di seguito
Operazioni sugli array
Con la disponibilità di strutture dati e algoritmi, è possibile eseguire diverse operazioni in qualsiasi tipo di struttura dati. Una struttura di dati di matrice può avere operazioni come l'aggiunta, l'eliminazione, l'accesso e l'aggiornamento di un elemento.
Di seguito sono elencate le operazioni che possono essere eseguite in un array della struttura dati di Python .
1. Aggiunta di un elemento a un array
- La funzione incorporata insert() viene utilizzata per aggiungere elementi a un array.
- Sintassi utilizzata : arrayName.insert(index, value)
- Uno o più elementi possono essere aggiunti all'array tramite la funzione insert().
- Gli elementi possono essere aggiunti all'inizio dell'array o in qualsiasi posizione specifica utilizzando la funzione Input: append().
matrice di importazione
segni = array.array('i', [200.500.600])
mark.insert(1, 150)
Output: array('i', [200.150.500.600])
Di seguito viene mostrato un esempio con un codice tratto da
Output del codice:
Fonte
2. Cancellazione di un elemento in un array
- Un elemento può essere eliminato dall'array tramite il suo valore.
- Sintassi utilizzata: arrayName.remove(value)
- Esempio: rimuovere il valore di 250 dopo la sua aggiunta nell'array con gli elementi 100, 300, 200, 500 e 800.
Ingresso:
matrice di importazione
segni = array.array('i', [100,300,200,500,800])
mark.insert(1, 250)
stampa (segni)
mark.remove(250)
Output: array('i', [100.300.200.500.800])
Un esempio di codice tratto da
Fonte
Output del codice:
3. Accesso agli elementi in un array
- L'operatore di indice [ ] viene utilizzato per accedere agli elementi in una matrice.
- Il numero di indice viene utilizzato per accedere a qualsiasi elemento nell'array .
Di seguito viene mostrato un esempio di codice tratto da
Output del codice:
Fonte
4. Ricerca dell'elemento in un array.
- Il metodo index() integrato viene utilizzato per cercare un elemento in un array.
- Il valore di indice dell'elemento da cercare viene restituito dalla funzione.
- Esempio: ricerca di un elemento 250 nell'array di elementi 100, 250, 300, 200, 500 e 800.
Input: importa matrice
segni = array.array('I', [100,250,300,200,500,800])
print(marks.index(250))
Uscita: 1
Un codice per la ricerca di un elemento in una matrice
L'output del codice è
Fonte
3. Aggiornamento degli elementi in un array
- Il processo di aggiornamento di un elemento è simile al metodo di inserimento con l'unica differenza che durante l'aggiornamento il valore esistente verrà sostituito all'indice dato.
- Il nuovo valore viene riassegnato all'indice per l'aggiornamento dell'elemento in una matrice.
- Esempio: aggiornamento di un elemento 250 con 350 nell'array di elementi 100, 250, 300, 200, 500 e 800.
Input: importa matrice
segni = array.array('i', [100.250.300.200.500.800])
segni[1] = 350
Produzione:
array('i', [100.350.300.200.500.800])
Di seguito è mostrato un codice che mostra l'aggiornamento di un elemento
L'output del codice è
Fonte
Vantaggi dell'array
- È possibile memorizzare più valori in una singola variabile invece di creare variabili separate per ciascun elemento.
- Più valori possono essere elaborati facilmente e rapidamente con l'uso di array.
- Gli elementi dell'array possono essere ordinati e ricercati in modo più rapido.
Conclusione
L'articolo ha discusso un tipo speciale di struttura dei dati, ad esempio l'array e le sue operazioni associate. Con i concetti di base, è possibile creare programmi più complessi rivolti a problemi della vita reale. Se vuoi rafforzare le basi dei tuoi concetti di struttura dei dati in Python, puoi fare riferimento al seguente corso dell'Executive PG Program in Data Science di upGrad. Il corso è certificato da IIIT-Bangalore e dispone di oltre 14 strumenti di programmazione e linguaggi per preparare il tuo viaggio verso il settore. È appositamente progettato per i professionisti di livello base nella fascia di età compresa tra 21 e 45 anni. Quindi, non interrompere qui il tuo apprendimento e scopri la lingua e la sua applicazione nel mondo dell'apprendimento automatico attraverso il corso di upGrad. In caso di domande, il nostro team di assistenza sarà lì per aiutarti.
Un array è una potente struttura di dati lineare. Tuttavia, presenta alcuni vantaggi e svantaggi che vengono menzionati di seguito: Di seguito viene illustrata la differenza tra una matrice e un elenco. La struttura dati dell'array ha molte applicazioni nella vita reale ed è anche utilizzata come base per l'implementazione di altre strutture dati definite dall'utente. Alcune delle principali applicazioni degli array sono le seguenti:Quali sono i vantaggi e gli svantaggi di un array?
Vantaggi
1. In un array, è possibile accedere facilmente agli elementi in base ai loro numeri di indice.
2. Gli array possono essere utilizzati per memorizzare più entità simili.
3. L'operazione di ricerca è abbastanza comoda. Può essere fatto in tempo O(n) e O(log n) in un array ordinato, dove n è il numero di elementi.
Svantaggi
1. Poiché la memoria è allocata staticamente in un array, la dimensione dell'array non può essere modificata.
2. È omogeneo, cioè solo gli elementi aventi un tipo di dati simile possono essere memorizzati in un array. Differenziare tra un array e un elenco?
Vettore -
1. La struttura dei dati dell'array è omogenea, ovvero solo gli elementi con tipi di dati simili possono essere archiviati in un array.
2. I moduli devono essere importati prima di utilizzare l'array.
3. Le operazioni aritmetiche sono direttamente applicabili.
4. Preferito per dati più grandi.
4. Molto più compatto e consuma meno memoria.
Elenco -
1. L'elenco è eterogeneo e può memorizzare al suo interno elementi di più tipi di dati.
2. Non è necessario importare moduli poiché è integrato in Python.
3. Le operazioni aritmetiche non possono essere eseguite direttamente.
4. Preferito per dati più piccoli.
5. Il consumo di memoria è maggiore. Descrivi le principali applicazioni degli array?
1. Gli array vengono utilizzati per implementare ed eseguire operazioni sulle matrici. Le matrici sono ampiamente utilizzate nelle indagini geologiche e negli esperimenti scientifici e di ricerca.
2. Diverse strutture di dati definite dall'utente vengono implementate utilizzando le strutture di dati dell'array. Questi includono stack, code, heap, tabelle hash ed elenchi.
3. I programmi utilizzano gli array per regolare il flusso di controllo invece di utilizzare le tradizionali istruzioni elif, che sono relativamente lunghe.
4. Anche gli algoritmi scritti per i processi di pianificazione della CPU utilizzano la struttura dei dati dell'array per migliorare le prestazioni della CPU.
5. I grafici utilizzano gli elenchi di adiacenza come una delle loro implementazioni. I vettori (applicazione dell'array) vengono utilizzati per creare questi elenchi di adiacenza.