Last Updated : 04 Mar, 2024

Divide and ConquerÂ is an algorithmic paradigm in which the problem is solved using the Divide, Conquer, and Combine strategy.

A typical divide-and-conquer algorithm solves a problem using the following three steps:

1. Divide:Â This involves dividing the problem into smaller sub-problems.
2. Conquer:Â Solve sub-problems by calling recursively until solved.
3. Combine:Â Combine the sub-problems to get the final solution of the whole problem.

Below image illustrate the working of divide and conquer algorithm used in Merge Sort:

Illustration of Merge Sort

• Efficiency: Divide and conquer algorithms typically have a time complexity of O(n log n), which is more efficient than many other algorithms for large datasets.
• Simplicity: Divide and conquer algorithms are often easy to understand and implement.
• Parallelizability: Divide and conquer algorithms can be easily parallelized, as each subproblem can be solved independently.
• Cache-friendliness: Divide and conquer algorithms tend to have good cache performance, as they access data in a predictable pattern.

• Recursion overhead: Divide and conquer algorithms use recursion, which can lead to significant overhead in terms of stack space and function calls.
• Not suitable for all problems: Divide and conquer algorithms are not suitable for all types of problems. They are most effective for problems that can be recursively divided into smaller subproblems.
• Limited memory efficiency: Divide and conquer algorithms can require a significant amount of memory, as they create multiple copies of the input data.
• Difficult to analyze: The time and space complexity of divide and conquer algorithms can be difficult to analyze, especially for complex problems.

Previous
Next