Sum of all the elements of an integer array can be achieved by using binary recursion.
Binary recursion can be applied to sum elements of an array as follows :
Sum the elements in the first half recursively and sum the elements in the second half recursively. Then add this two sums to find the total sum.
Space complexity = O(logN)
Time complexity = O(N)
public class BinaryRecursiveSumOfArray { public static int binaryRecursiveSum( int[] data, int low, int high ) { if( low>high ) return 0; else if( low == high ) return data[low]; else { int mid = (low+high)/2; return binaryRecursiveSum(data, low, mid)+binaryRecursiveSum(data, mid+1, high); } } public static void main(String[] args) { int[] data = {1,2,3,4,5,6,7,8}; int result = binaryRecursiveSum(data, 0, data.length-1); System.out.println(result); } }
For an 8 element array following recursion trace is obtained.
Reference : http://www.amazon.com/Data-Structures-Algorithms-Java-Edition-ebook/dp/B00JDRQF8C
No comments:
Post a Comment