Bine, deci este DSA, nu?

Absolut, de ce nu. Să fim sinceri, DSA este ceva de care fiecare se teme să-l studieze. DSA este un astfel de lucru în facultate sau pentru orice slujbă tehnologică, că fără acest subiect, nimic nu s-ar putea face cu adevărat. Fiecare interviu, indiferent de portofoliul pentru care aplicați, necesită conceptele DSA în profunzime absolută.

După cum sugerează și numele, despre date este vorba. Modul în care datele sunt structurate în fiecare aspect este conceptul întregului subiect, iar algoritmii sunt tehnici pe care le-am făcut pentru a simplifica structurile de date.

Așadar, sunt și acum student în anul doi, care își propune să obțin un loc de muncă în tehnologie bine plătit și cu siguranță sunt speriat de acest subiect și, sincer, nu este chiar atât de interesant. Acest articol este un fel de motivație și pentru mine, să mă ridic, să iubesc subiectul (pentru că sunt toate date și îmi place să mă joc în jurul datelor) și să încerc să-l fac cât de mult pot. Articolul va fi o perspectivă asupra cunoștințelor mele teoretice despre DSA și vom vedea unde ne conduce acest subiect în viitorul apropiat, pe măsură ce mă pregătesc pentru plasamente.

O structură de date bine concepută și un algoritm eficient pot transforma un coșmar de calcul într-o soluție lină și elegantă.

Structurile și algoritmii de date pot fi implementați în orice limbă la alegere, python, java, c, c++ etc.

Acum, ce este exact o structură de date?

Răspunsul scurt este: o „structură de date” este un mijloc specific de organizare a datelor într-un sistem pentru a le accesa și utiliza.

Răspunsul lung este o structură de date este un amestec de organizare, gestionare, recuperare și stocare a datelor, reunite într-un singur format care permite accesul și modificarea eficient. Colectează valorile datelor, relațiile pe care le împărtășesc și funcțiile sau operațiunile aplicabile.

Iată un exemplu din lumea reală. Dacă mergi la bibliotecă și vrei să găsești o carte despre istoria militară a secolului al XX-lea, ai merge la secțiunea Istorie. De acolo, veți găsi zona desemnată rezervată pentru istoria militară, apoi veți parcurge cărțile, sortate în ordine cronologică, până când găsiți secolul al XX-lea. Acum, luați în considerare cărțile ca fiind datele dvs. și metoda bibliotecii de sortare a cărților ca structură de date și gata!

Structurile de date sunt necesare pentru a gestiona cantitățile masive de date generate și sunt un factor critic în creșterea eficienței algoritmului.

Tipuri de structură de date

Structura liniară a datelor

Structura de date neliniară

Structuri liniare de date

În structurile de date liniare, elementele sunt aranjate în succesiune unul după altul. Deoarece elementele sunt aranjate într-o anumită ordine, ele sunt ușor de implementat.

1. Matrice

Într-o matrice, elementele din memorie sunt aranjate în memorie continuă. Toate elementele unui tablou sunt de același tip. Și, tipul de elemente care pot fi stocate sub formă de matrice este determinat de limbajul de programare.

2. Stiva

În structura de date a stivei, elementele sunt stocate în principiul LIFO. Adică, ultimul element stocat într-o stivă va fi eliminat primul.

Funcționează la fel ca o grămadă de farfurii unde ultima farfurie păstrată pe grămadă va fi îndepărtată mai întâi.

3. Coadă

Spre deosebire de stiva, structura de date a cozii funcționează în principiul FIFO, în care primul element stocat în coadă va fi eliminat primul.

Funcționează la fel ca o coadă de oameni la ghișeul de bilete, unde prima persoană din coadă va primi biletul prima.

4. Lista legată

În structura de date a listei legate, elementele de date sunt conectate printr-o serie de noduri. Și, fiecare nod conține elementele de date și adresa către următorul nod.

Structuri de date neliniare

Spre deosebire de structurile de date liniare, elementele din structurile de date neliniare nu sunt în nicio secvență. În schimb, ele sunt aranjate într-o manieră ierarhică în care un element va fi conectat la unul sau mai multe elemente.

Structurile de date neliniare sunt împărțite în continuare în structuri de date bazate pe grafic și arbore.

1. Grafic

În structura de date grafică, fiecare nod este numit vârf și fiecare vârf este conectat la alte vârfuri prin muchii.

2. Structura datelor arborilor

Similar unui grafic, un arbore este, de asemenea, o colecție de vârfuri și muchii. Cu toate acestea, în structura de date arborescentă, poate exista doar o margine între două vârfuri.

Structuri de date liniare vs neliniare

Tipuri de grafic

  • Grafic nul
  • Grafic trivial
  • Grafic nedirecționat
  • Graficul Dirijat
  • Graficul conectat
  • Graficul deconectat
  • Graficul obișnuit
  • Graficul complet
  • Graficul ciclului
  • Graficul ciclic
  • Graficul aciclic
  • Graficul finit
  • Graficul infinit
  • Graficul bipartit
  • Graficul planar
  • Grafic simplu
  • Grafic multiplu
  • Pseudograf
  • Graficul Euler
  • Graficul Hamiltonian

Traversarea graficului în structura datelor

Traversarea graficului este vizitarea sau actualizarea fiecărui vârf dintr-un grafic. Ordinea în care vizitează vârfurile clasifică traversările. Există două moduri de a implementa o traversare a graficului:

  1. Breadth-First Search (BFS):este o operațiune de traversare care străbate graficul pe orizontală. Acesta traversează toate nodurile la un singur nivel înainte de a trece la nivelul următor. Începe de la rădăcina graficului și traversează toate nodurile la un singur nivel de adâncime înainte de a trece la nivelul următor.
  2. Depth-First Search (DFS): aceasta este o altă operație de traversare care străbate graficul pe verticală. Începe cu nodul rădăcină al graficului și investighează fiecare ramură, pe cât posibil, înainte de a reveni.

Urmtoarele sunt tipurile unei structuri de date arborescente:

  • Arborele general:

  • Arborele de căutare binar
  • Arborele AVL
  • Copac roșu-negru
  • Afișează arborele
  • Treap
  • Arborele B
  • Arborele de întindere minim

Acum, să învățăm despre diverși algoritmi.

Dar mai întâi, ce sunt algoritmii în domeniul informaticii?

Un algoritm este o procedură utilizată pentru rezolvarea unei probleme sau efectuarea unui calcul. Algoritmii acționează ca o listă exactă de instrucțiuni care efectuează acțiuni specificate pas cu pas în rutine bazate pe hardware sau software.

Algoritmii sunt utilizați pe scară largă în toate domeniile IT. În matematică și informatică, un algoritm se referă de obicei la o mică procedură care rezolvă o problemă recurentă. Algoritmii sunt utilizați și ca specificații pentru efectuarea prelucrării datelor și joacă un rol major în sistemele automatizate.

Un algoritm poate fi folosit pentru sortarea seturi de numere sau pentru sarcini mai complicate, cum ar fi recomandarea conținutului utilizatorului pe rețelele sociale. Algoritmii încep de obicei cu intrarea inițială și instrucțiuni care descriu un anumit calcul. Când calculul este executat, procesul produce o ieșire.

Tipuri de algoritmi:

In cautarea:

1) Căutare binară

2) Căutare liniară

3) Profunzime prima căutare

4) Căutare pe lățimea întâi

Triere:

1) Sortare prin inserare

2) Sortare în grămada

3) Sortare selecție

4) Merge Sort

5) Sortare rapidă

6) Sortare de numărare

7) Sortare cu găleată

8) Sortare cu bule

9) Sortare Radix

10) Sortare Shell

Grafice:

1) Algoritmul lui Kruskal

2) Algoritmul lui Dijkstra

3) Algoritmul Bellman Ford

4) Algoritmul Floyd Warshall

5) Algoritmul de sortare topologică

6) Algoritmul de umplere prin inundație

7) Algoritmul lui Prim

Matrice:

1) Algoritmul lui Kadane

2) Algoritmul de detectare a ciclului Floyd

Copac:

1) Arborele AA

2) Arborele indexat binar sau Arborele Fenwick

5) Heap Tree

Alții:

1) Algoritmul de compresie de codare Huffman

2) Algoritmul lui Euclid

3) Algoritmul Hash Map

4) Programare dinamică

5) Algoritmi lacomi

6) Împărțiți și cuceriți algoritmi

Concluzie

Bine, deci, în primul rând, în acest articol, nu am oferit o informare a fiecărei structuri de date și algoritm. Ar putea exista tone și mii de alte lucruri care pot fi scrise despre DSA. Fiecare algoritm are propriul set de matematică și programare implicat, partea de analiză, cu mai multe notații, cu un set de exemple foarte comune, unul dintre ele fiind problema sacului. Acest subiect se numește DAA, algoritm de proiectare și analiză, care integrează câteva subiecte fundamentale precum complexitatea timpului și spațiului, dar acesta este un subiect pentru altă zi. Cu toate acestea, atașez o listă de întrebări bune din pov de plasare. Îl poți verifica aici.



Scopul articolului a fost de a oferi o înțelegere scurtă și rapidă a ceea ce înseamnă DSA la nivel de bază. Cu aceasta, să începem călătoria noastră de succes în DSA și să fim mândri și să avem încredere în mine, cel care poate rezolva probleme complexe DSA, adică este un adevărat flex în lumea tehnologiei.

Până data viitoare, continuați să lucrați, continuați să învățați!!!