最大子序列和问题 算法
int max_sub(const int a[], int n)
{
int tmp_sum, sum, i;
tmp_sum = sum = 0;
for(i = 0; i < n; i++)
{
tmp_sum += a[i];
if(tmp_sum > sum)
sum = tmp_sum;
else if(tmp_sum < 0)
tmp_sum = 0;
}
return sum;
}
int main(void)
{
int a[] = {-2, 11, -4, 13, -5, 2, -5, -3, 12, -9};
int sum;
sum = max_sub(a, sizeof(a) / sizeof(int));
printf("max sum is %d/n", sum);
return 0;
}