see my correction:
public static void large_cont(int[] values){
int tstart = 0;
int startpos = 0;
int endpos = 0;
int cursum = values[0];
int maxsum = values[0];
if(values.length > 1){
for(int i = 1; i cursum + values[i] || values[i] > values[i]+ cursum ){
cursum = values[i];
tstart = i;
}
else{
cursum += values[i];
}
if(cursum > maxsum){
maxsum = cursum;
startpos = tstart;
endpos = i;
}
}
}
System.out.println(maxsum + ” ” + startpos + ” ” + endpos);
}
]]>public class MaxSubArray {
public static void maxSubArray(int[] Q){
int A1=Integer.MIN_VALUE,A=0;
int s=0,s1=0;
int e=0,e1=0;
for (int i = 0; i Q[i]+A){
A=Q[i];
s=i;
e=i;
}
else{
A=Q[i]+A;
e=i;
}
if(A>A1){
A1=A;
s1=s;
e1=e;
}
}
System.out.println(“the maximum subarray sum is: “+A1);
for (int i = s1; i <= e1; i++) {
System.out.print(Q[i]+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] Q={13,-3,-25,20,-3,-16,-23,18,20,-7,12,-5,-22,15,-4,7};
int[] Q1={1,2,3,4,5,6,7,8,9,10};
int[]Q2={-10,-9,-8,-7,-6,-5,-4,-3,-2,-1};
int[] Q3={-40,1,40,-50,1,50,-20,1,20,0,0};
maxSubArray(Q);
maxSubArray(Q1);
maxSubArray(Q2);
maxSubArray(Q3);
}
}
]]>{
long long max_sum = -(((long long)1)<<(8*sizeof(int)));
long long entire_sum=0;
int break_point = -1,i=0;
for(; i<length; i++)
{
entire_sum += array[i];
printf("entire_sum = %lldn",entire_sum);
if(max_sum < entire_sum)
{
max_sum = entire_sum;
printf("Max_Sum = %lld ",max_sum);
*start = break_point+1;
*end = i;
printf("start %d end %d n", *start, *end);
}
if(entire_sum <= 0)
{
entire_sum = 0;
break_point = i;
}
}
}
main () {
//int arr[] = {1, 3, 5, -2, 6, -2, -4, -8, 2, 3, -1, -1, 4, 5, 9};
int arr[] = {-3,-5,-2,-4,-6,-9,-1,-10};
int s = 1, e = 7;
MaxSubSeq(arr, 8, &s, &e);
}
]]>