演算法第三章實驗報告
實踐報告任選一題進行分析。內容包括:
- 實踐題目
最大子段和
- 問題描述
給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
要求演算法的時間複雜度為O(n)。
- 演算法描述
for(i=1;i<=n;i++)
cin>>a[i];
ma=b[1]=a[1];
for(i=2;i<=n;i++){
if(b[i-1]<=0)
ma=b[i-1]=0;
b[i]=b[i-1]+a[i];
if(b[i]<0){
i++;
b[i]=a[i];
}
ma=max(ma,b[i]);
}
- 演算法時間及空間複雜度分析(要有分析過程)
時間複雜度:演算法中只用到一維陣列的遍歷,因此時間複雜度為O(n);
空間複雜度:使用一維陣列b[]存放欄位和,空間複雜度為O(n)。
- 心得體會(對本次實踐收穫及疑惑進行總結)
小組討論收穫匪淺。
相關推薦
演算法第三章實驗報告
實踐報告任選一題進行分析。內容包括: 實踐題目 最大子段和 問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為
演算法作業:第三章實驗報告
演算法作業:第三章實驗報告 實踐題目:最大子段和 問題描述: 求出子段和的最大值,若最大值為負數,則最大值為0 演算法描述: dp[i]表示以a[i]為字串結尾的最大連續字串的長度,因此轉移方程為: dp[i]=max(0,dp[i-1]+a[i]); 複雜度分析: 只需要掃一遍陣列並隨時
演算法 第三章實踐報告
1.實踐題目 數字三角形 2.問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3.演算法描述 for(j=1;j<=n;j++) a[n][
演算法第三章實踐報告
7-1數字三角形 1.實踐題目 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 2.問題描述 輸入格式: 輸入有n+1行: 第 1 行是數字三角形的行數 n,
【實踐報告】演算法第三章實踐報告
1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。
演算法第四章實驗報告
汽車加油問題 #include <iostream>#include <map>using namespace std;int a[100010],b[100010],c[100010],d[100010],n,now,sum,Max;map<int,int>e;int
第三章實驗報告
題目: 求最大子段和 問題描述: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 演算法描述 設一個數組a[ ],用於存放n個數,定義一個整型sum存放最大和,定
演算法第五章實驗報告
1.實踐題目 工作分配問題 2.問題描述 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計一個演算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小。 3.演算法描述(包括解空間,畫出測試樣例的解空間樹,剪枝(約束函式或限界函式)方法描述) 減枝
演算法第三章上機實驗報告
1.實踐題目 7-2 最大子段和 2.問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。 3.演算法描述 首
【實踐】演算法第三章上機實踐報告
1. 實踐題目 7-3 編輯距離問題 2. 問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到 B的編輯距離,記為
演算法第三章上機實踐報告
實踐題目 7-1 數字三角形 (30 分) 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 輸入
演算法第三章上機實驗
演算法第三章上機實驗 數字三角形 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 #include <iostream> using namespace std; in
第三次實驗報告+061+陳小蘭
內容 黑盒測試 測試 實驗 音樂 組合 正交 目的 場景 一、實驗目的 掌握黑盒測試用例設計方法 二、實驗要求 (1)對被測程序進行黑盒測試用例設計 (2)運用等價類、邊界值、決策表、狀態圖法等進行測試用例設計。 (3)對手機上任意一款音樂軟件進行黑盒測試實踐。(作
20165210 Java第三次實驗報告
codes best 9.png cli cap 實驗 logs complex 替換 20165210 實驗二 敏捷開發與XP實踐 一、敏捷開發與XP實踐-1 實驗要求: http://www.cnblogs.com/rocedu/p/4795776.html, Ecli
第三章實驗二小談
就是 運行 字符 文件 eof 方案 但是 字符變量 速度 這周很忙...時間很趕...很多作業還沒做... 首先想談(tu)論(cao)一下計算機的嚴謹性。 編程語言嚴謹是一種好事,越嚴謹,把它轉化為機器語言就越方便,在資源占用、運行速度等方面存在優勢。 唯一的缺點就是高
演算法第三章上機實踐
1.實踐題目 最大子段和 2.問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。 輸入格式: 輸入有兩行:
演算法第三章實踐
1、 實踐題目:最大子段和 2、 問題描述:給定n個整數(可能為負數)組成的序列a[1]a[2]……a[n],求該序列如a[i]+a[i+1]……a[j]的子段和最
演算法第三章
1、 對動態規劃演算法的理解:動態規劃就是將一個大問題變成一個個子問題再去解決,而每個子問題都是互相有聯絡的,不像二分法是獨立存在的。而這些子問題都可以通過遞迴或者多重迴圈來解決,最終得出最終答案。無論是矩陣連乘問題,揹包問題,還是我們實踐中的三道實驗題目,都是通過子問題來得出。我覺得三角形那個是
第三章實驗
i+1 心得 str 收獲 疑惑 實踐 設計 時間 ron 1.實踐題目 答:數字三角形。 2.問題描述 答:給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。
【實踐報告】算法第三章實踐報告
sin code 收獲 一行 ret 個數 第三章 動態規劃 一個 1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數