Bird
Raised Fist0
Software Engineeringknowledge~5 mins

Critical path method in Software Engineering - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Critical path method
O(n + e)
Understanding Time Complexity

When using the Critical Path Method, we want to know how the time to find the longest path grows as the project size increases.

We ask: How does the work needed change when there are more tasks and dependencies?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function findCriticalPath(tasks) {
  let graph = buildGraph(tasks);
  let visited = new Set();
  let memo = new Map();

  function dfs(task) {
    if (memo.has(task)) return memo.get(task);
    let maxLength = 0;
    for (let next of graph.get(task) || []) {
      maxLength = Math.max(maxLength, dfs(next));
    }
    memo.set(task, maxLength + 1);
    return maxLength + 1;
  }

  let maxPath = 0;
  for (let task of tasks) {
    maxPath = Math.max(maxPath, dfs(task));
  }
  return maxPath;
}
    

This code finds the longest sequence of dependent tasks in a project, which is the critical path.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Depth-first search (DFS) traversal of tasks to find longest path.
  • How many times: Each task is visited once due to memoization, but edges are checked during traversal.
How Execution Grows With Input

As the number of tasks and dependencies grows, the work grows roughly in proportion to the number of tasks plus their connections.

Input Size (n)Approx. Operations
10 tasksAbout 10 to 20 checks
100 tasksAbout 100 to 200 checks
1000 tasksAbout 1000 to 2000 checks

Pattern observation: The work grows roughly in a straight line with the number of tasks and their links.

Final Time Complexity

Time Complexity: O(n + e)

This means the time to find the critical path grows linearly with the number of tasks and their dependencies.

Common Mistake

[X] Wrong: "The time grows exponentially because we check all possible paths."

[OK] Correct: Memoization ensures each task is processed once, so we do not repeat work for the same task multiple times.

Interview Connect

Understanding how the critical path method scales helps you explain project scheduling and dependency analysis clearly in interviews.

Self-Check

"What if we removed memoization? How would the time complexity change?"

Practice

(1/5)
1. What does the Critical Path Method (CPM) primarily help determine in a project?
easy
A. The total cost of the project
B. The longest sequence of dependent tasks that sets the project duration
C. The number of team members required
D. The quality standards for project deliverables

Solution

  1. Step 1: Understand the purpose of CPM

    The Critical Path Method is used to find the longest chain of tasks that must be completed on time to avoid delaying the project.
  2. Step 2: Identify what CPM does not measure

    CPM does not calculate cost, team size, or quality standards; it focuses on task sequencing and timing.
  3. Final Answer:

    The longest sequence of dependent tasks that sets the project duration -> Option B
  4. Quick Check:

    CPM = longest task sequence [OK]
Hint: CPM finds the longest chain of tasks to finish on time [OK]
Common Mistakes:
  • Confusing CPM with cost estimation
  • Thinking CPM calculates resources needed
  • Assuming CPM sets quality standards
2. Which of the following is the correct way to represent a task dependency in a project network diagram?
easy
A. Task A finishes before Task B starts, but they are independent
B. Task A and Task B start at the same time regardless of each other
C. Task B starts only after Task A finishes
D. Task B can start before Task A finishes

Solution

  1. Step 1: Understand task dependency in CPM

    In CPM, a task dependency means one task must finish before the next can start.
  2. Step 2: Evaluate each option

    Only Task B starts only after Task A finishes correctly states that Task B starts after Task A finishes, showing a dependency.
  3. Final Answer:

    Task B starts only after Task A finishes -> Option C
  4. Quick Check:

    Dependency = task B after task A [OK]
Hint: Dependencies mean one task waits for another to finish [OK]
Common Mistakes:
  • Assuming tasks can start simultaneously without dependency
  • Thinking tasks are independent when they have dependencies
  • Believing a task can start before its predecessor finishes
3. Given tasks with durations and dependencies:
Task A: 3 days (start)
Task B: 4 days (after A)
Task C: 2 days (after A)
Task D: 5 days (after B and C)

What is the total project duration using CPM?
medium
A. 9 days
B. 7 days
C. 14 days
D. 12 days

Solution

  1. Step 1: Calculate paths and durations

    Path 1: A (3) -> B (4) -> D (5) = 3 + 4 + 5 = 12 days
    Path 2: A (3) -> C (2) -> D (5) = 3 + 2 + 5 = 10 days
  2. Step 2: Identify the critical path

    The longest path is Path 1 with 12 days, so the project duration is 12 days.
  3. Final Answer:

    12 days -> Option D
  4. Quick Check:

    Longest path duration = 12 days [OK]
Hint: Add durations along longest dependent path [OK]
Common Mistakes:
  • Adding all tasks durations regardless of dependencies
  • Choosing the shortest path instead of longest
  • Ignoring that D depends on both B and C
4. A project has tasks:
A (2 days), B (3 days after A), C (4 days after B), D (1 day after A)
Which task dependency is incorrect if the critical path is A -> B -> C?
medium
A. Task D depends on Task C
B. Task D depends on Task A
C. Task B depends on Task A
D. Task C depends on Task B

Solution

  1. Step 1: Analyze given dependencies

    Tasks A, B, and C form the critical path with dependencies A->B->C.
    Task D depends on A, so it starts after A.
  2. Step 2: Check if Task D depends on Task C

    Since D depends on A only, not on C, Task D depends on Task C is incorrect because it states D depends on C.
  3. Final Answer:

    Task D depends on Task C -> Option A
  4. Quick Check:

    Incorrect dependency = D on C [OK]
Hint: Check if dependencies match critical path order [OK]
Common Mistakes:
  • Assuming all tasks depend on the last task
  • Mixing up which tasks depend on which
  • Ignoring the critical path sequence
5. You have tasks:
W: 2 days (start)
X: 3 days (after W)
Y: 4 days (after W)
Z: 1 day (after X and Y)

If task Y is delayed by 2 days, what is the new project duration?
hard
A. 9 days
B. 10 days
C. 8 days
D. 7 days

Solution

  1. Step 1: Calculate original paths durations

    Path 1: W (2) -> X (3) -> Z (1) = 6 days
    Path 2: W (2) -> Y (4) -> Z (1) = 7 days
  2. Step 2: Add delay to task Y and recalculate

    Y delayed by 2 days: Y duration = 4 + 2 = 6 days
    New Path 2 duration: 2 + 6 + 1 = 9 days
  3. Step 3: Determine new project duration

    Longest path is now Path 2 with 9 days, so project duration is 9 days.
  4. Final Answer:

    9 days -> Option A
  5. Quick Check:

    Delay added to longest path = 9 days [OK]
Hint: Add delay to longest path tasks only [OK]
Common Mistakes:
  • Adding delay to shortest path
  • Ignoring delay impact on critical path
  • Calculating total duration without dependencies
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