蛮力法:
int maxSum1(int a[], int n){
int i;
int j;
int maxSum = 0;
for(i = 0; i < n; i++){
int sum = 0;
for(j = i; j < n; j++){
sum += a[j];
if(sum > maxSum){
maxSum = sum;
}
}
}
return maxSum;
}
分治法:
int maxSum2(int left, int right, int a[]){
int center , i;
int sum, left_sum, right_sum;
int left_max, right_max;
if(left == right)
return a[left] ;
else{
center = (left + right) / 2;
left_sum = maxSum2(left, center, a);
right_sum = maxSum2(center+1, right, a);
sum = 0;
left_max = 0;
//求左边的最大值
for(i = center; i >= left; i--){
sum += a[i];