Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

Maximum subarray probelm

$
0
0

1.I am studying "Introduction to Algorithm" by t.cormen and using Divide and Conquer technique I am
solving this.

2.My Code is not giving correct output for this problem.

3.I am having problem to understand how exactly that max_sum() function is working, it will be really helpful if any one will explain. here is the code:-

#include<stdio.h>
#define NEGINF -1000000000
#define MAX(a,b) a>b?a:b
int a[9]={-2,1,-3,4,-1,2,1,-5,4};
int max_across(int low,int mid,int high){
int i;
int leftsum,rightsum,sum,maxsum;
leftsum=NEGINF;
sum=0;
for(i=mid;i>=low;i--){
 sum=sum+a[i];
 if(sum>leftsum)
  leftsum=sum;

}
rightsum=NEGINF;
for(i=mid+1;i<=high;i++){
 sum=sum+a[i];
 if(sum>rightsum)
  rightsum=sum;
}
maxsum=leftsum+rightsum;
return maxsum;

}

int max_sum(int low,int high){
int left_sum,right_sum,across_sum,final_sum;
int mid=low+(high-low)/2;
if(low==high) return a[low];
left_sum=max_sum(low,mid);
right_sum=max_sum(mid+1,high);
across_sum=max_across(low,mid,high);
final_sum=MAX(MAX(left_sum,right_sum),across_sum);
return final_sum;
}
int main(){
int sum;
sum=max_sum(0,9);
printf("%d\n",sum);
return 0;

}


Viewing all articles
Browse latest Browse all 40121

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>