Sum of an array using Divide and Conquer algorithm (DAC)
Finding sum of an array is a very easy task, just add all the elements in a single pass! Time and space complexity associated with this approach is linear and constant respectively.
In this post, I will show how we can find the sum of an array using Divide and Conquer algorithm.
First of all I would like you to have a glance at What a Divide and Conquer algorithm is?
Divide and Conquer is an algorithmic strategy used to find solution of a particular problem by recursively breaking down the problem into sub-problems of same type, and when the base condition of the recursion is hit, assemble the results of those sub-problems to form the solution of the original problem.
This strategy often brings considerable optimizations in some while solving some problems. Some popular algorithms that implements Divide and Conquer are:
1. Quicksort
2. Mergesort
3. Binary Exponentiation
4. Quickselect
5. Straseen's algorithm (Matrix Multiplication)
6. Binary Search
The Divide and Conquer strategy can be divided into three parts:
1. Divide: Divide the larger problem into smaller sub-problems of same type.
2. Conquer: Solve the sub-problems by recursively calling until solved.
3. Combine: Combine the sub-problems to get the final solution of the whole problem.
It becomes very easy to find the time complexity of DAC algorithms using Master Theorem.
Image given below shows how to solve recurrence relations using Master Method.
Now, coming back to the question. We have to find the sum of an array using DAC.
Let's formulate the solution:
Sum of an array can be found using breaking the array into two halves, add them and return the sum. Recursively break down the problem into two halves, we the array size becomes 1, return the value of that single element. So simple!
output: 27
I have traced the algorithm:
Now, let's find the time complexity of this algorithm.
Hence, the time complexity is .
No comments:
Post a Comment