Bird
Raised Fist0
Data Structures Theoryknowledge~5 mins

Graphs in social networks in Data Structures Theory - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Graphs in social networks
O(n + m)
Understanding Time Complexity

When we study graphs in social networks, we want to know how fast we can find friends or connections as the network grows.

We ask: How does the time to explore or search the network change when more people join?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function bfs(graph, start) {
  let queue = [start];
  let visited = new Set([start]);
  while (queue.length > 0) {
    let node = queue.shift();
    for (let neighbor of graph[node]) {
      if (!visited.has(neighbor)) {
        visited.add(neighbor);
        queue.push(neighbor);
      }
    }
  }
}
    

This code performs a breadth-first search (BFS) to visit all connected friends starting from one person.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Visiting each person and checking their friends (neighbors).
  • How many times: Each person and each friendship connection is checked once.
How Execution Grows With Input

As the number of people (nodes) and friendships (edges) grow, the time to visit everyone grows too.

Input Size (n people, m friendships)Approx. Operations
10 people, 15 friendshipsAbout 25 checks
100 people, 200 friendshipsAbout 300 checks
1000 people, 3000 friendshipsAbout 4000 checks

Pattern observation: The work grows roughly with the total people plus their friendships combined.

Final Time Complexity

Time Complexity: O(n + m)

This means the time to explore the network grows linearly with the number of people and friendships.

Common Mistake

[X] Wrong: "The BFS will take time proportional to the square of the number of people because everyone might connect to everyone else."

[OK] Correct: In most social networks, not everyone is friends with everyone else, so the number of friendships (edges) is usually much less than the square of people (nodes). BFS time depends on actual connections, not just people count squared.

Interview Connect

Understanding how BFS runs on social networks helps you explain how to find friends or connections efficiently, a skill useful in many real-world problems.

Self-Check

"What if the graph was stored as an adjacency matrix instead of adjacency lists? How would the time complexity change?"

Practice

(1/5)
1. In a social network graph, what do the nodes usually represent?
easy
A. Posts or comments
B. Users or people
C. Groups or communities
D. Messages sent

Solution

  1. Step 1: Understand graph components in social networks

    Graphs use nodes to represent entities. In social networks, these entities are usually users or people.
  2. Step 2: Identify what edges represent

    Edges represent connections like friendships, not the nodes themselves.
  3. Final Answer:

    Users or people -> Option B
  4. Quick Check:

    Nodes = Users [OK]
Hint: Nodes = users, edges = friendships [OK]
Common Mistakes:
  • Confusing nodes with edges
  • Thinking nodes represent messages
  • Mixing up groups with nodes
2. Which of the following correctly describes an undirected edge in a social network graph?
easy
A. It shows a mutual friendship between two users
B. It represents a user posting a message
C. It shows a one-way friendship from one user to another
D. It indicates a user joining a group

Solution

  1. Step 1: Define undirected edge meaning

    An undirected edge means the connection goes both ways, showing mutual relationship.
  2. Step 2: Apply to social network context

    In social networks, mutual friendship means both users are connected equally, matching undirected edges.
  3. Final Answer:

    It shows a mutual friendship between two users -> Option A
  4. Quick Check:

    Undirected edge = mutual friendship [OK]
Hint: Undirected edges mean two-way connections [OK]
Common Mistakes:
  • Thinking undirected edges are one-way
  • Confusing edges with user actions
  • Mixing edges with posts or groups
3. Consider this simple social network graph represented as adjacency list:
{'Alice': ['Bob', 'Carol'], 'Bob': ['Alice'], 'Carol': ['Alice']}
How many direct friends does Alice have?
medium
A. 2
B. 1
C. 3
D. 0

Solution

  1. Step 1: Read Alice's adjacency list

    Alice's list shows ['Bob', 'Carol'], meaning Alice is directly connected to Bob and Carol.
  2. Step 2: Count direct friends

    There are 2 names in the list, so Alice has 2 direct friends.
  3. Final Answer:

    2 -> Option A
  4. Quick Check:

    Length of Alice's list = 2 [OK]
Hint: Count names in adjacency list for direct friends [OK]
Common Mistakes:
  • Counting indirect friends
  • Confusing keys with values
  • Ignoring list length
4. Given this adjacency list for a social network:
{'Dave': ['Eve'], 'Eve': ['Dave', 'Frank'], 'Frank': ['Eve']}
What is wrong if we add 'Frank' to Dave's list but forget to add 'Dave' to Frank's list?
medium
A. The graph will have a syntax error
B. The graph will show no connection between Dave and Frank
C. The graph becomes directed, showing one-way friendship
D. The graph will crash when accessed

Solution

  1. Step 1: Understand undirected graph rules

    In undirected graphs, edges must be mutual. Adding Frank to Dave's list but not Dave to Frank's breaks this.
  2. Step 2: Identify effect on graph type

    This creates a one-way connection, making the graph directed for that edge.
  3. Final Answer:

    The graph becomes directed, showing one-way friendship -> Option C
  4. Quick Check:

    Missing mutual edge = directed edge [OK]
Hint: Mutual edges needed for undirected graphs [OK]
Common Mistakes:
  • Expecting syntax errors
  • Assuming no connection exists
  • Thinking graph will crash
5. A social network wants to suggest new friends by finding users who share at least two mutual friends but are not directly connected. Which graph concept helps solve this problem?
hard
A. Calculating node degrees
B. Finding shortest paths between nodes
C. Detecting cycles in the graph
D. Counting common neighbors between nodes

Solution

  1. Step 1: Understand the friend suggestion criteria

    The network wants to find users not directly connected but sharing at least two mutual friends.
  2. Step 2: Identify graph concept matching criteria

    Counting common neighbors (shared friends) between two nodes helps find such pairs.
  3. Final Answer:

    Counting common neighbors between nodes -> Option D
  4. Quick Check:

    Mutual friends = common neighbors [OK]
Hint: Mutual friends = common neighbors count [OK]
Common Mistakes:
  • Using shortest paths incorrectly
  • Confusing cycles with mutual friends
  • Only checking node degrees
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard