static void max_sub(int a[]){
//初始化最大子序列为数组第一个元素的值
int i,max=a[0],temp_sum=0;
int start=1,end=1,k=0;
for(i=0;i<a.length;i++){
temp_sum+=a[i];
//临时子序列的值大于记录的最大值时,用临时子序列值替换原来最大值
//并记录开始结束下标
if(temp_sum>max){
max=temp_sum;
end=i+1;
start=k+1;
}
//临时子序列和小于0,则任何值加上子序列的值都比原来值小
//临时子序列清零,并且记录临时开始下标k
if(temp_sum<0){
temp_sum=0;
k=i+1;
}
}
System.out.println(start+" "+end+" "+max);
}