加算アルゴリズム解析の最小セグメント

#include <iostreamの> 
使用して名前空間STD; 

INT MinSubSum(INT N-、INT A []、INT&besti、INT&bestj){ 
    int型SUM = 0、B = 0; 
    INT J; 
    のため(J = 0; J <N-、J ++ ){ 
        B + = [J]; 
        IF(B> 0){ 
            B = 0; 
            besti = j個の+ 1; // B> 0一旦、レコードの次の位置jを、以前の結果を破棄
            bestj = J + 。1; 
        } 
        (B <合計){IF 
            ;合計= B 
            bestj = J;和続いbestj //更新更新
        } 
    } 
    戻り値の合計を、
} 

int型のmain(){ 
    int型besti、bestj; 
    besti = bestj = 0; 
    int型A [5] = {2、-19,13、-20、-1}; 
    COUT << "および最小フィールド:" << MinSubSum(5、 、besti、bestj)<< ENDL。
    COUT << "開始位置" << ENDL << besti;
    COUT << "終了位置:" << ENDL << bestj; 
}

 

 

 

おすすめ

転載: www.cnblogs.com/khnl/p/11683704.html