Woh key fact jo saare space costs control karta hai:
0≤E≤(2V)=2V(V−1)=O(V2)(undirected, no self-loops)
Toh zyada se zyada∼V2/2 edges ho sakti hain. Jis graph mein E≈V2 ho use dense kehte hain; jisme E≈V ho (ya E≪V2) use sparse kehte hain. Yahi ek distinction decide karti hai ki kaun sa representation better rahega.
YEH O(V+E) kyun cost karta hai: hum V list headers store karte hain (+V), aur saari lists milake, exactly ek entry per edge-endpoint hoti hai. Har undirected edge do lists mein appear hoti hai, toh total entries =2E=O(E) hain. Directed: E entries. Sum: O(V+E). Absent edges ke liye kuch store nahi hota — yahi saving hai.
Matrix ke liye exactly O(V2) kyun hai chahe edges kam hon?
Undirected list mein E nahi 2E entries kyun hain?
Kaun sa representation isEdge(u,v) ko O(1) banata hai?
Kis graph type ke liye dono ke space costs equal ho jaate hain?
Jawab: 1) har ordered pair ke liye ek cell, edges irrelevant. 2) edge dono endpoints ki lists mein store hoti hai. 3) matrix. 4) dense, E=Θ(V2).
Adjacency matrix space complexity
O(V2) — vertices ke har ordered pair ke liye ek cell
Adjacency list space complexity
O(V+E) — V headers plus 2E (undirected) edge entries
Matrix O(V2) kyun hai jab graph mein edges kam hon
Yeh har pair (u,v) ke liye cell allocate karta hai chahe edge exist kare ya na kare
Ek undirected edge kitni list entries banati hai
Do — yeh dono endpoints ke neighbor lists mein store hoti hai
Matrix mein isEdge(u,v) check karne ka time
O(1) — direct index A[u][v]
List mein isEdge(u,v) check karne ka time
O(degu) — u ki neighbor list scan karni padti hai
Matrix mein u ke saare neighbors list karne ka time
O(V) — poori row scan
List mein u ke saare neighbors list karne ka time
O(degu)
Sparse graphs ke liye default representation
Adjacency list
Matrix ki space list ki space se kab tie karti hai
Dense graphs jahan E=Θ(V2) ho
Undirected graph ki adjacency matrix ki property
Yeh symmetric hoti hai, A=AT
(Ak)[u][v] ka matlab
u se v tak exactly k length ke walks ki count
V vertices wale undirected simple graph mein edges ki max count
(2V)=2V(V−1)
Recall Feynman: 12-saal ke bachche ko explain karo
Apni class imagine karo aur socho kaun kaun se dost hain.
Method 1 (grid / matrix): ek bada checkerboard banao jisme har bachche ka naam upar aur side mein ho. Agar do log dost hain toh us square mein ✗ lagao. Kisi bhi pair ko check karna super fast hai — lekin un lakhon pairs ke liye bhi square waste hota hai jo dost nahi hain. Badi class = bahut bada grid.
Method 2 (lists): har bachche ko ek sticky note do jisme sirf unke doston ke naam hon. Kam doston mein chhota hoga. Amy aur Ben dost hain ya nahi check karna ho toh Amy ki note padho — thoda slow hai, lekin koi space waste nahi.
Kam dosti → sticky notes use karo (list). Sabko sabse jaanta ho → grid use karo (matrix).