第四章 分治策略 最大子陣列問題

2021-09-06 19:14:37 字數 679 閱讀 1919

最大子陣列問題

方法一:暴力求解方法

我們可以很容易地設計出乙個暴力方法來求解本問題:簡單地嘗試沒對可能的子陣列,共有o(n2)種

#includeusing namespace std;

#define int_min 0x80000000

int main()

; int i,j;

int sum=0,maxsum=int_min;

int imax;

for(i=0;i<10;i++)

tuplefindmaximumsubarry(int arr,int low,int high)

}int main()

; tupleresult=findmaximumsubarry(arr,0,9);

cout<(result)<<" "<(result)<<" "<(result)《方法三:使用動態規劃的演算法(o(n))

#includeusing namespace std;

int maxarraysum(int arr,int n)

if(maxsum}

cout<<"max sum: "

}int main()

; cout<}

演算法導論第四章 最大子陣列問題

注 書上的分治演算法複雜度太大,選擇動態規劃演算法 題目 輸入乙個整型陣列,資料元素有正數也有負數,求元素組合成連續子陣列之和最大的子陣列,要求時間複雜度為o n 例如 輸入的陣列為1,2,3,10,4,7,2,5,最大和的連續子陣列為3,10,4,7,2,其最大和為18。分析 如果不考慮時間複雜度...

演算法導論 第四章 分治策略 速記

在分治策略中,我們遞迴的求解乙個問題,在每層遞迴中應用如下三個步驟 分解 divide 步驟將問題劃分為一些子問題 子問題的形式與原問題一樣,只是規模更小.解決 conquer 步驟遞迴地求解出子問題,如果子問題的規模足夠小,則停止遞迴,直接求解.合併 combine 步驟將子問題的解組合成原問題的...

第四章 陣列

一維陣列的定義 當陣列中每個元素只帶有乙個下標時,我們稱這樣的陣列為一維陣列。陣列的定義格式如下 型別識別符號 陣列名 常量表示式 說明 陣列名的命名規則與變數名的命名規則一致。常量表示式表示陣列元素的個數。可以是常量和符號常量,但不能是變數。例如 int a 10 陣列a定義是合法的 int b ...