******** fig2.8 ********** int max_subsequence_sum( int a[], unsigned int n ) { int this_sum, max_sum, best_i, best_j, i, j; /*1*/ i = this_sum = max_sum = 0; best_i = best_j = -1; /*2*/ for(j=0; j max_sum ) { /* update max_sum, best_i, best_j */ /*5*/ max_sum = this_sum; /*6*/ best_i = i; /*7*/ best_j = j; } else /*8*/ if( this_sum < 0 ) { /*9*/ i = j+1; /*10*/ this_sum = 0; } } /*11*/ return( max_sum ); }