最大子段和

2021-08-20 12:39:12 字數 668 閱讀 1148

//本博文僅供博主個人**筆記之用。至於具體原理,我有空的話會更新,讀者可以自行查書。

#include

#include

using namespace std;

const int n = 50;

int main()

; //c存每個子問題的最大欄位和,最後的最大子段必在此中

int a[n] = ;   //a陣列用來存放待求最大欄位和的i陣列

cout << "請輸入原始資料:" << endl;

for (int i = 1; i <= 7; ++i) //輸入原始資料

cin >> a[i];

if (a[1] > 0)                           //初始化:當a[1]大於0時,c[1]=a[1],否則c[1]=0

else

int max_num = c[1];  int mark_j = 1;   //這兩個變數用作分別標記最大子段和的值和對應的在原始陣列中最大子段的位置

for (int j = 1; j <= 6; ++j)

}cout << "最大欄位和等於: " << max_num << endl << "也就是從第乙個資料算起到第" << mark_j << "個數" << endl;

return 0;

}

最大子段和

設a 是n個整數的序列,稱為該序列的子串行,其中1 i j n.子串行的元素之和稱為a的子段和.例如,a 2,11,4,13,5,2 那麼它的子段和是 長度為1的子段和 2,11,4,13,5,2 長度為2的子段和 9,7,9,8,7 長度為3的子段和 5,20,4,6 長度為4的子段和 18,15...

最大子段和

問題表述 n個數 可能是負數 組成的序列a1,a2,an.求該序列 例如 序列 2,11,4,13,5,2 最大子段和 11 4 13 20。1 窮舉演算法 o n3 o n2 2 分治法 將序列a 1 n 從n 2處截成兩段 a 1 n 2 a n 2 1 n 例項 三 最大子段和 問題表述 n個...

最大子段和

再給頂的n個數的陣列中選出連續的若干個數,使得他們的和是最大的,即最大連續自序列和.列如.序列.1 2 3 1 6 5 9 結果 當取子串行 3,1,6,5,9 結果12 我的思路.1.最大連續子串行的開頭是在1.n之中.的最大連續和 2.求出以i,開頭的最大連續和,此時開頭已經確定了,那麼通過列舉...