Matrice în structura datelor - Explicație, funcție și exemple

Publicat: 2021-06-21

Structurile de date s-au dovedit a fi o parte crucială a aproape tuturor limbajelor de programare care au fost aplicate pe scară largă la majoritatea programelor de calculator. Prin intermediul structurilor de date, datele pot fi gestionate și accesate eficient de programe, deoarece accesarea și stocarea separată a datelor individuale este un proces care consumă timp. Algoritmii sunt proiectați special pentru a crea operațiuni specifice necesare într-o structură de date. Prin urmare, structurile de date și algoritmii împreună pun bazele aplicațiilor și programelor complexe.

În acest articol, ne vom concentra pe un tip de structură de date, adică Array.

O matrice este un tip de structură de date în care elementele sau datele sunt stocate în locații învecinate. Ori de câte ori utilizatorul are un set de date cu același tip de date, structura de date matrice este opțiunea de organizare a acestor date. Dimensiunea unei matrice depinde de dimensiunea datelor. Înainte ca elementele să fie stocate într-o matrice, dimensiunea matricei trebuie definită astfel încât să încorporeze toate elementele în mod eficient. Fiecare element care este stocat într-o matrice are o valoare de index atribuită, care ajută la identificarea locației acelui element în matrice. Primul element al matricei are o valoare de index zero.

Termenii importanți asociați cu o structură de date matrice sunt:

  • Element : Element reprezintă fiecare obiect sau element stocat în structura de date.
  • Index : Indexul reprezintă locația elementului într-o matrice. Are o valoare numerică.

Mărimea unei matrice se modifică cu diferite limbaje de programare. În funcție de dimensiune, o matrice poate fi de două tipuri: o matrice statică și una dinamică.

Cuprins

1. Matrice statică:

Aceste tipuri de matrice au dimensiunile lor predefinite în timpul creării. Din această cauză, matricele statice sunt cunoscute și sub denumirea de matrice fixe sau matrice de lungime fixă. Matricea poate fi definită în două moduri. Fie elementele matricei pot fi definite în timpul creării matricei, fie dimensiunea matricei poate fi definită în timpul creării unei matrice. În acest din urmă caz, elementele nu trebuie să fie specificate. Valorile implicite pot fi alocate unei matrice neinițializate sau valori lăsate în memorie din alocările anterioare.

Matricea nu se poate micșora sau extinde odată ce dimensiunea este definită. Pe măsură ce memoria este alocată în timpul declarației unui tablou, doar compilatorul este cel care poate distruge matricea. Adăugarea unui element nu este posibilă deoarece utilizatorul nu este sigur dacă este prezentă vreo memorie liberă pentru a o aloca următorului element.

Tabelul de mai jos prezintă exemplul de matrice utilizate în diferite limbaje de programare.

Limbaj de programare Conținutul matricei definit Dimensiunea definită a matricei fără conținut
C++ int marks[] = {10, 20, 30}; semnele int[3];
C# int[] semne = {10, 20, 30}; int[] semne = = new int[3];
Java int[] semne = {10, 20, 30}; int[] semne = = new int[3];
JavaScript var note = [10, 20, 30]; var marks = new Array(3);
Piton note = [10, 20, 30] note = [Niciuna] * 3
Rapid valori var:[Int] = [10, 20, 30] var marks: [Int] = [Int](se repetă: 0, număr: 3)

2. Matrice dinamică

După cum sugerează și numele, matricea este dinamică, ceea ce înseamnă că elementele pot fi adăugate sau pot fi eliminate în timpul rulării. În comparație cu matricele statice a căror lungime este fixă, matricele dinamice nu au nici o lungime sau dimensiune fixă ​​a matricei. Funcțiile standard de bibliotecă sau funcțiile încorporate sunt disponibile în majoritatea limbajelor de programare pentru a crea și gestiona matrice dinamice.

Tabelul de mai jos arată crearea unui tablou în diferite limbaje de programare

Limbaj de programare Clasă Adăugarea elementului Îndepărtarea elementului
C++ #include <listă>

std::list

introduce şterge
C# Sistem.Colecții.Generic.List Adăuga Elimina
Java java.util.ArrayList adăuga elimina
JavaScript Matrice împinge, îmbina pop, îmbinare
Piton Listă adăuga elimina
Rapid Matrice adăuga elimina

Reprezentarea unui tablou

Reprezentarea unei matrice variază în funcție de implementarea sa în diferite limbaje de programare. Matricea fiind o parte importantă a structurii de date python , a fost prezentată o ilustrare în limbajul de programare python.

În python, matricele cu structură de date sunt gestionate prin cuvântul cheie array . Ori de câte ori este utilizată matricea de cuvinte cheie, utilizatorul trebuie să stocheze elemente de aceleași tipuri de date.

Sursă

Figura 1: Un exemplu de matrice

Conform figurii 1, ilustrația matricei arată asta

  • Mărimea matricei este 10, ceea ce înseamnă că 9 elemente pot fi stocate în matrice.
  • Valoarea indexului a fost menționată deasupra matricei care începe cu valoarea 0.
  • Elementele stocate în matrice pot fi de orice tip de date, iar elementul poate fi accesat prin valoarea indexului lor.

O altă ilustrare a fost prezentată în Figura 2, unde a fost descrisă sintaxa lui python și C++.

Sursă

Figura 2 : Declarație de matrice folosind python și C++ (

Proprietățile unui tablou

O structură de date matrice are mai multe proprietăți:

  • Elementele stocate într-o matrice au aceleași tipuri de date și aceeași dimensiune, adică tipul de date int va avea dimensiunea de 4 octeți.
  • Locația de memorie adiacentă este utilizată pentru stocarea elementelor unei structuri de date. Cea mai mică memorie este alocată primului element din matrice.
  • Valorile indexului sunt folosite pentru a găsi locația elementelor dintr-o matrice. Indicele începe cu 0 și este întotdeauna mai mic decât numărul total de elemente din matrice.
  • Accesul aleatoriu al elementelor din matrice este posibil datorită valorii indexului disponibil. Adresa elementului poate fi calculată prin adresa de bază adăugată la o valoare offset.
  • Conceptul de matrice rămâne același în toate limbajele de programare. Doar inițializarea și declarația variază.
  • Numele matricei, elementele și tipul de date sunt cele trei părți care vor fi comune în toate limbile.

Crearea unei matrice

Crearea unui tablou în structura de date python a fost prezentată mai jos.

  • Modulul matrice din structura de date python poate fi importat pentru a crea o matrice.
  • array(data_type, value_list ) este sintaxa prin care o matrice poate fi creată în structura de date python .
  • Tipul de date ar trebui să fie numere întregi reale sau flotanți. Șirurile nu sunt permise în python.

Figura 2 arată cum să creați o matrice în python. Un exemplu de cod pentru a arăta cum este importat un modul matrice în python

matrice de import

marcaje = array.array('i', [100,200,300])

imprimare (semne)

Declararea unui tablou poate fi efectuată prin

arrayName = array.array(cod tip pentru tipul de date, [matrice,articole])

Acest lucru poate fi reprezentat în Figura 3

Sursă

Figura 3: Declarație de matrice în python

Termeni importanți utilizați în crearea unei matrice:

  • Identificator: Un nume care trebuie specificat ca un nume pentru variabile
  • Modul: modulul special numit array trebuie importat în python.
  • Metodă: Este o metodă specifică de a inițializa o matrice în python. Două argumente ate luate, typecode și elemente.
  • Cod de tip: Tipul de date trebuie specificat cu codul de tip disponibil.
  • Elemente: elementele matricei trebuie specificate între paranteze pătrate, de exemplu [200,400,100.]

Codurile de tip disponibile sunt prezentate mai jos

Operații cu matrice

Cu disponibilitatea structurilor de date și a algoritmilor, mai multe operații pot fi efectuate în orice tip de structură de date. O structură de date matrice poate avea operații precum adăugarea, ștergerea, aderarea și actualizarea unui element.

Operațiunile care pot fi efectuate într-o matrice a structurii de date python sunt enumerate mai jos.

1. Adăugarea unui element la o matrice

  • Funcția încorporată insert() este utilizată pentru adăugarea de elemente la o matrice.
  • Sintaxă folosită : arrayName.insert(index, value)
  • Fie unul sau mai multe elemente pot fi adăugate la matrice prin funcția insert().
  • Elementele pot fi adăugate la începutul matricei sau în orice poziție specifică folosind funcția Input: append().

matrice de import

marcaje = array.array('i', [200.500.600])

marks.insert(1, 150)

Ieșire: array('i', [200.150.500.600])

Un exemplu cu un cod este prezentat mai jos luat din

Ieșirea codului:

Sursă

2. Ștergerea unui element dintr-o matrice

  • Un element poate fi șters din matrice prin valoarea sa.
  • Sintaxă utilizată: arrayName.remove(value)
  • Exemplu: eliminarea valorii lui 250 după adăugarea acesteia în matricea care are elementele 100, 300, 200, 500 și 800.

Intrare:

matrice de import

marcaje = array.array('i', [100.300.200.500.800])

marks.insert(1, 250)

imprimare (semne)

marks.remove(250)

Ieșire: array('i', [100.300.200.500.800])

Un exemplu de cod preluat din

Sursă

Ieșirea codului:

3. Accesarea elementelor dintr-o matrice

  • Operatorul de index [ ] este utilizat pentru accesarea elementelor dintr-o matrice.
  • Numărul de index este folosit pentru a accesa orice element din matrice .

Un exemplu de cod este prezentat mai jos, luat din

Ieșirea codului:

Sursă

4. Element de căutare într-o matrice.

  • Metoda index() încorporată este utilizată pentru căutarea unui element dintr-o matrice.
  • Valoarea indexului elementului de căutat este returnată de funcție.
  • Exemplu: căutarea unui element 250 în matricea elementelor 100, 250, 300, 200, 500 și 800.

Intrare: import array

marks = array.array('I', [100.250.300.200.500.800])

print(marks.index(250))

Ieșire: 1

Un cod pentru căutarea unui element dintr-o matrice

Ieșirea codului este

Sursă

3. Actualizarea elementelor dintr-o matrice

  • Procesul de actualizare a unui element este similar cu metoda de inserare, cu singura diferență că în timpul actualizării valoarea existentă va fi înlocuită la indexul dat.
  • Noua valoare este reatribuită indexului pentru actualizarea elementului dintr-o matrice.
  • Exemplu: actualizarea unui element 250 cu 350 în matricea elementelor 100, 250, 300, 200, 500 și 800.

Intrare: import array

marcaje = array.array('i', [100.250.300.200.500.800])

note[1] = 350

Ieșire:

matrice(„i”, [100,350,300,200,500,800])

Un cod care arată actualizarea unui element este prezentat mai jos

Ieșirea codului este

Sursă

Avantajele matricei

  • Stocarea mai multor valori într-o singură variabilă este posibilă în loc de a crea variabile separate pentru fiecare element.
  • Valorile multiple pot fi procesate ușor și rapid cu ajutorul matricelor.
  • Elementele matricei pot fi sortate și căutate într-un mod mai rapid.

Concluzie

Articolul a discutat despre un tip special de structură de date, adică matricea și operațiile asociate acesteia. Cu conceptele de bază, ar putea fi construite programe mai complexe care vizează problemele din viața reală. Dacă doriți să consolidați bazele conceptelor de structură a datelor în python, vă puteți referi la următorul curs al Programului Executive PG în Știința datelor de la upGrad. Cursul este certificat de IIIT-Bangalore și are peste 14+ instrumente de programare și limbaje pentru a vă pregăti călătoria către industrie. Este special conceput pentru profesioniștii de nivel de intrare din grupa de vârstă între 21 și 45 de ani. Așadar, nu vă opriți învățarea aici și puneți mâna pe limba și aplicarea acesteia în lumea învățării automate prin cursul upGrad. În cazul în care aveți întrebări, echipa noastră de asistență va fi acolo pentru a vă ajuta.

Care sunt avantajele și dezavantajele unei matrice?

O matrice este o structură de date liniară puternică. Cu toate acestea, are câteva avantaje, precum și dezavantaje, care sunt menționate mai jos:
Avantaje
1. Într-o matrice, elementele pot fi accesate cu ușurință prin numerele lor de index.
2. Array-urile pot fi folosite pentru a stoca mai multe entități similare.
3. Operația de căutare este destul de convenabilă. Se poate face în timp O(n) și O(log n) într-un tablou sortat, unde n este numărul de elemente.
Dezavantaje
1. Deoarece memoria este alocată static într-o matrice, dimensiunea matricei nu poate fi modificată.
2. Este omogen, adică doar elementele care au un tip de date similar pot fi stocate într-o matrice.

Faceți diferența între o matrice și o listă?

Următoarele ilustrează diferența dintre o matrice și o listă.
matrice -
1. Structura datelor matricei este omogenă, adică doar elementele cu tipuri de date similare pot fi stocate într-o matrice.
2. Modulele trebuie importate înainte de a utiliza matricea.
3. Operațiile aritmetice sunt direct aplicabile.
4. De preferat pentru date mai mari.
4. Mult mai compact și consumă mai puțină memorie.
Lista -
1. Lista este eterogenă și poate stoca elemente de mai multe tipuri de date în interiorul acesteia.
2. Nu este nevoie să importați module deoarece este încorporat în Python.
3. Operațiile aritmetice nu pot fi operate direct.
4. De preferat pentru date mai mici.
5. Consumul de memorie este mai mare.

Descrieți aplicațiile majore ale matricelor?

Structura de date matrice are multe aplicații în viața reală și este, de asemenea, folosită ca bază pentru implementarea altor structuri de date definite de utilizator. Unele dintre aplicațiile majore ale matricelor sunt următoarele:
1. Matricele sunt folosite pentru a implementa și a efectua operații cu matrice. Matricele sunt utilizate în mare măsură în studii geologice și experimente științifice și de cercetare.
2. Mai multe structuri de date definite de utilizator sunt implementate folosind structurile de date matrice. Acestea includ stivă, coadă, grămezi, tabele hash și liste.
3. Programele folosesc matrice pentru a regla fluxul de control în loc să utilizeze instrucțiunile elif tradiționale, care sunt lungi comparativ.
4. Algoritmii scrisi pentru procesele de programare CPU folosesc, de asemenea, structura de date matrice pentru a spori performanta CPU.
5. Graficele folosesc listele de vecinătate ca una dintre implementările lor. Vectorii (aplicarea matricei) sunt utilizați pentru a crea aceste liste de adiacență.