Articles

GeeksforGeeks

o matrice este o colecție de elemente stocate în locații de memorie învecinate. Ideea este de a stoca mai multe elemente de același tip împreună. Acest lucru facilitează calcularea poziției fiecărui element prin simpla adăugare a unui offset la o valoare de bază, adică locația de memorie a primului element al matricei (în general notată cu numele matricei). Valoarea de bază este indicele 0, iar diferența dintre cei doi indici este compensarea.

pentru simplitate, ne putem gândi la o matrice ca la o flotă de scări în care pe fiecare pas este plasată o valoare (să zicem unul dintre prietenii tăi). Aici, puteți identifica locația oricăruia dintre prietenii dvs., cunoscând pur și simplu numărul pasului pe care se află.
Amintiți-vă: „locația indexului următor depinde de tipul de date pe care îl folosim”.

array

imaginea de mai sus poate fi privită ca o vedere de nivel superior a unei scări unde vă aflați la baza scării. Fiecare element poate fi identificat în mod unic prin indexul său în matrice (într-un mod similar în care ați putea identifica prietenii dvs. prin pasul pe care au fost în exemplul de mai sus).

dimensiunea matricei

în limbajul C matricea are o dimensiune fixă, ceea ce înseamnă că odată ce dimensiunea i se dă, nu poate fi modificată, adică nu o puteți micșora și nici nu o puteți extinde. Motivul a fost că, pentru extindere, dacă schimbăm dimensiunea, nu putem fi siguri ( nu este posibil de fiecare dată) că vom obține următoarea locație de memorie pentru noi ca fiind gratuită. Micșorarea nu va funcționa deoarece matricea, atunci când este declarată, primește memorie static și, prin urmare, compilatorul este singurul care o distruge.

tipuri de indexare într-o matrice:

  • 0 (indexare bazată pe zero): primul element al matricei este indexat de un indice de 0
  • 1 (indexare bazată pe o singură bază): primul element al matricei este indexat de indicele de 1
  • n (indexare bazată pe n): indicele de bază al unei matrice poate fi ales în mod liber. De obicei, limbajele de programare care permit indexarea bazată pe n permit, de asemenea, valori negative ale indexului și alte tipuri de date scalare, cum ar fi enumerările sau caracterele, pot fi utilizate ca index de matrice.

avantajele utilizării matricelor:

  • tablourile permit accesul aleatoriu la elemente. Acest lucru face ca accesarea elementelor prin poziție să fie mai rapidă.
  • matrice au localitate cache mai bine, care poate face o diferență destul de mare în performanță.
  • matrice reprezintă mai multe elemente de date de același tip, folosind un singur nume.

dezavantajele utilizării matricelor:
nu se poate schimba dimensiunea adică odată ce ați declarat matrice nu se poate schimba dimensiunea din cauza memoriei statice alocate. Aici inserarea și ștergerea sunt dificile, deoarece elementele sunt stocate în locații de memorie consecutive, iar operația de deplasare este costisitoare.
acum, dacă ia un exemplu de punere în aplicare a structurii de date stivă folosind matrice există unele defecte evidente.

să luăm operația POP a stivei. Algoritmul ar merge ceva de genul asta.

  1. verificați underflow-ul stivei
  2. Decretați partea de sus cu 1

deci, ceea ce facem este că indicatorul către elementul cel mai de sus este decrement, ceea ce înseamnă că ne mărginim punctul de vedere de fapt, acel element rămâne acolo vorbind despre spațiul de memorie dacă aveți orice tip de date primitiv, atunci ar putea fi ok, dar obiectul unei matrice ar lua multă memorie.

Examples –

// A character array in C/C++/Javachar arr1 = {'g', 'e', 'e', 'k', 's'};// An Integer array in C/C++/Javaint arr2 = {10, 20, 30, 40, 50};// Item at i'th index in array is typically accessed// as "arr". For example arr1 gives us 'g'// and arr2 gives us 40.

De obicei, o serie de caractere se numește „șir”, în timp ce o serie de int-uri sau flotoare se numește pur și simplu o matrice.

aplicații pe matrice

  1. matrice stochează elemente de date de același tip de date.
  2. matrice pot fi folosite pentru programarea CPU.
  3. folosit pentru a implementa alte structuri de date, cum ar fi stive, cozi, grămezi, tabele Hash etc.

dacă vă place GeeksforGeeks și ar dori să contribuie, puteți scrie, de asemenea, un articol folosind contribute.geeksforgeeks.org sau trimiteți articolul dvs. la [email protected]. vedeți articolul dvs. care apare pe pagina principală GeeksforGeeks și ajutați alți Geeks.