第三章實驗報告
題目:
求最大子段和
問題描述:
給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
演算法描述
設一個數組a[ ],用於存放n個數,定義一個整型sum存放最大和,定義一個整型b用於計算最大子段和。
用for語句訪問陣列,當b<0時,可將它直接賦值為a[i];
當b>0時,如果加上a[i]後小於0,就賦值a[i],大於零就和sun比較,如果比較後sum<b,就另sum=b,否則不變。
時間,空間複雜度
只需要迴圈n次,時間複雜度為O(n), 空間複雜度也一樣。
心得與體會:
與組員一起討論之後的結果如下:因為當總和小於0時,最後返回的結果都為0,所以當b已經小於0時可直接將a[i]的值賦給b,先前的陣列成員最大子段和都小於0可不用管了。
相關推薦
演算法第三章實驗報告
實踐報告任選一題進行分析。內容包括: 實踐題目 最大子段和 問題描述 給定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]); 複雜度分析: 只需要掃一遍陣列並隨時
第三章實驗報告
題目: 求最大子段和 問題描述: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 演算法描述 設一個數組a[ ],用於存放n個數,定義一個整型sum存放最大和,定
第三次實驗報告+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行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3.演算法描述 for(j=1;j<=n;j++) a[n][
第三章實驗
i+1 心得 str 收獲 疑惑 實踐 設計 時間 ron 1.實踐題目 答:數字三角形。 2.問題描述 答:給定一個由 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)。
【實踐報告】算法第三章實踐報告
sin code 收獲 一行 ret 個數 第三章 動態規劃 一個 1.實踐題目 7-2最大子段和 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數
第三章實踐報告
1、實踐題目。 數字三角形 2、問題描述。 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的 頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3、演算法描述 for(i=n-1;i>=1;i--){ &n
算法第三章實踐報告
修改 報告 strlen 字符串 復雜度 操作數 數組下標 後來 刪除 算法第三章 實踐報告 1.實踐題目 7-3 編輯距離問題 (30 分) 設A和B是2個字符串。要用最少的字符操作將字符串A轉換為字符串B。這裏所說的字符操作包括 (1)刪除一個字符; (2)插入一個字符
演算法第四章實驗報告
汽車加油問題 #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
第四章實驗報告
當前 狀態 優先 sin 空間復雜度 name 存儲 n) ali 第四章實驗報告 1.實踐題目:程序存儲問題 設有n 個程序{1,2,…, n }要存放在長度為L的磁帶上。程序i存放在磁帶上的長度是 li,1≤i≤n。 程序存儲問題要求確定這n 個程序在磁帶上的一個存儲
第五章實驗報告
實踐題目: 工作分配問題 問題描述: 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計一個演算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小。 輸入格式: 輸入資料的第一行有1 個正整數n (1≤n≤20)。接下來的n行,每行n個數,表示
演算法第五章實驗報告
1.實踐題目 工作分配問題 2.問題描述 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計一個演算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小。 3.演算法描述(包括解空間,畫出測試樣例的解空間樹,剪枝(約束函式或限界函式)方法描述) 減枝
資料結構第三章實驗2.實現鏈棧的各種基本運算
(1)初始化棧s。 (2)判斷棧s是否為空。 (3)依次進棧元素a,b,c,d,e。 (4)判斷棧s是否為空。 (5)輸出出棧序列。 (6)判斷棧s是否為空。 (7)釋放棧。 #include <stdio.h> #include &l
第三章 實驗二 猜數字遊戲
實驗目的: 使用if~else分支和while迴圈語句解決問題 GuessNumber.java package guessnumber; import java.util.Scanner; import java.util.Rand
第三次實驗報告
n-1 怎麽 不同 目的 scanf () for循環 用法 har C程序設計實驗報告 實驗項目: 1、用for語句實現循環 2、用while循環語句實現循環 3、用do_while語句實現循環 4、用while語句和for語句配合實現循環 5、用for語句嵌