Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sd-ca:laboratoare:lab-07 [2026/05/11 21:32]
valentin.carauleanu [Interviu]
sd-ca:laboratoare:lab-07 [2026/05/12 18:39] (current)
roberto_giulio.pal [Exerciţii]
Line 4: Line 4:
   * [[alexiaops2014@gmail.com|Oprisan Alexia-Ioana]]   * [[alexiaops2014@gmail.com|Oprisan Alexia-Ioana]]
   * [[-@gmail.com|Macovei Nicolae-Cristian]]   * [[-@gmail.com|Macovei Nicolae-Cristian]]
 +  * [[valentin.carauleanu@stud.fim.upb.ro|Cărăuleanu Valentin Gabriel]]
  
 ===== Obiective ===== ===== Obiective =====
Line 235: Line 236:
 </​note>​ </​note>​
  
-===== Algoritmul Floyd-Warshall ===== 
- 
-Algoritmul **Floyd-Warshall** este un algoritm folosit pentru găsirea **celor mai scurte căi** între toate perechile de noduri dintr-un graf orientat cu costuri pe muchii. Costurile pot fi pozitive sau negative, însă algoritmul nu funcționează corect în prezența **ciclurilor negative**. 
- 
-Ideea de bază a algoritmului este simplă: pentru fiecare pereche de noduri ''​(i,​ j)'',​ se verifică dacă există un nod intermediar ''​k''​ prin care calea de la ''​i''​ la ''​j''​ devine mai scurtă. Algoritmul iterează prin toate nodurile posibile ca intermediari,​ îmbunătățind progresiv matricea de distanțe. 
- 
-**Complexitate:​** 
-  * **Timp**: ''​O(|V|³)''​ — trei bucle imbricate peste toate nodurile 
-  * **Spațiu**:​ ''​O(|V|²)''​ — matricea de distanțe 
- 
-=== Pseudocod === 
- 
-<​code>​ 
-dist[V][V] ​   // Matricea de distanțe minime, inițializată cu INFINIT 
- 
-pentru fiecare nod v 
-    dist[v][v] = 0 
- 
-pentru fiecare muchie (u, v) din E 
-    dist[u][v] = cost(u, v) 
- 
-pentru k între 0 și |V| – 1         // nodul intermediar 
-    pentru i între 0 și |V| – 1     // nodul sursă 
-        pentru j între 0 și |V| – 1 // nodul destinație 
-            dacă dist[i][k] + dist[k][j] < dist[i][j] 
-                dist[i][j] = dist[i][k] + dist[k][j] 
-</​code>​ 
  
 ===== Exerciţii ===== ===== Exerciţii =====
Line 277: Line 251:
 4) [**1p**] Implementați parcurgerea in lățime (BFS) a unui graf implementat cu listă de adiacență (**BFS** pe Devmind). 4) [**1p**] Implementați parcurgerea in lățime (BFS) a unui graf implementat cu listă de adiacență (**BFS** pe Devmind).
  
-5) [**2p - bonus**] Implementați algoritmul Floyd-Warshall pe un graf reprezentat printr-o matrice de adiacență. 
 ===== Interviu ===== ===== Interviu =====
  
Line 291: Line 264:
  
 **Ușoare:​** **Ușoare:​**
-  * [[https://​leetcode.com/​problems/​find-if-path-exists-in-graph/​description|1971. Find if Path Exists in Graph]] ​— verificarea existenței unui drum între două noduri (BFS/DFS) +  * [[https://​leetcode.com/​problems/​find-if-path-exists-in-graph/​description|1971. Find if Path Exists in Graph]] ​verificarea existenței unui drum între două noduri (BFS/DFS) 
-  * [[https://​leetcode.com/​problems/​flood-fill/​description|733. Flood Fill]] ​— parcurgere BFS/DFS pe o matrice +  * [[https://​leetcode.com/​problems/​flood-fill/​description|733. Flood Fill]] ​parcurgere BFS/DFS pe o matrice 
-  * [[https://​leetcode.com/​problems/​number-of-islands/​description|200. Number of Islands]] ​— identificarea componentelor conexe+  * [[https://​leetcode.com/​problems/​number-of-islands/​description|200. Number of Islands]] ​identificarea componentelor conexe
  
 **Medii:** **Medii:**
-  * [[https://​leetcode.com/​problems/​clone-graph/​description|133. Clone Graph]] ​— clonarea unui graf folosind BFS/DFS +  * [[https://​leetcode.com/​problems/​clone-graph/​description|133. Clone Graph]] ​clonarea unui graf folosind BFS/DFS 
-  * [[https://​leetcode.com/​problems/​rotting-oranges/​description|994. Rotting Oranges]] ​— BFS multi-sursă +  * [[https://​leetcode.com/​problems/​rotting-oranges/​description|994. Rotting Oranges]] ​BFS multi-sursă 
-  * [[https://​leetcode.com/​problems/​course-schedule/​description|207. Course Schedule]] ​— detectarea ciclurilor într-un graf orientat +  * [[https://​leetcode.com/​problems/​course-schedule/​description|207. Course Schedule]] ​detectarea ciclurilor într-un graf orientat 
-  * [[https://​leetcode.com/​problems/​number-of-provinces/​description|547. Number of Provinces]] ​— componente conexe cu BFS/DFS +  * [[https://​leetcode.com/​problems/​number-of-provinces/​description|547. Number of Provinces]] ​componente conexe cu BFS/DFS 
-  * [[https://​leetcode.com/​problems/​shortest-path-in-binary-matrix/​description|1091. Shortest Path in Binary Matrix]] ​— cel mai scurt drum cu BFS+  * [[https://​leetcode.com/​problems/​shortest-path-in-binary-matrix/​description|1091. Shortest Path in Binary Matrix]] ​cel mai scurt drum cu BFS
  
 **Grele:** **Grele:**
-  * [[https://​leetcode.com/​problems/​word-ladder/​description|127. Word Ladder]] ​— BFS pe graf implicit +  * [[https://​leetcode.com/​problems/​word-ladder/​description|127. Word Ladder]] ​BFS pe graf implicit 
-  * [[https://​leetcode.com/​problems/​find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance/​description|1334. Find the City with the Smallest Number of Neighbors at a Threshold Distance]] ​— Floyd-Warshall aplicat+  * [[https://​leetcode.com/​problems/​find-the-city-with-the-smallest-number-of-neighbors-at-a-threshold-distance/​description|1334. Find the City with the Smallest Number of Neighbors at a Threshold Distance]] ​Floyd-Warshall aplicat
  
 ===== Bibliografie ===== ===== Bibliografie =====
sd-ca/laboratoare/lab-07.1778524347.txt.gz · Last modified: 2026/05/11 21:32 by valentin.carauleanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0