Answered step by step
Verified Expert Solution
Question
1 Approved Answer
#include #include int maxSubArray(int a[], int left, int right) { int bestValue=a[0]; for (int i=left; ibestValue) { bestValue=sumSubArray; } } } return bestValue; } int
#includeProblem 4 (1 pt). Consider the following maximum subarray sum problem for an integer array a[0], a[1], .., a[n-1], where n is the length of the array. Find a subarray a[i], a[i+1], ., a a j] for some i and j such that its sum m=ija[m] is maximum over all possible subarrays. Attached is a C language program maxSubArray.c, which has a function maxSubArray(int a[ ], int left, int right) that returns the sum of the maximum subarray in the array a[left], a[left+1], ..., a[right]. The function has time complexity (n2), where n is the length of the array. Rewrite the function so that it has time complexity (nlogn) using the divide-and-conquer strategy. It should be a recursive function#include int maxSubArray(int a[], int left, int right) { int bestValue=a[0]; for (int i=left; ibestValue) { bestValue=sumSubArray; } } } return bestValue; } int main() { int a[9]={-2,1,-3,4,-1,2,1,-5,4}; printf("Max subarray of first array = %d ", maxSubArray(a,0,8)); int b[12]={1,1,-3,4,-1,9,1,-5,4,2,-4,2}; printf("Max subarray of second array = %d ", maxSubArray(b,0,11)); }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started