演算法第三章上機實驗報告
1.實踐題目
7-2 最大子段和
2.問題描述
給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。
要求演算法的時間複雜度為O(n)。
3.演算法描述
首先將資料儲存到一個數組內,然後建立一個迴圈來遍歷這些陣列,定義一個sum來儲存和,定義一個max來儲存最大值,對於每次遍歷的結果x,如果sum為負,則將sum的值更改為x,並與max做對比,若比max大則將sum的值賦予max,否則不做處理;如果sum為正數,則sum加上x的值並與max做對比,如果比max大則sum的值賦予max,否則不做處理。最後的max即我們所要求的值。
4.演算法時間及空間複雜度分析
時間複雜度:只有一次遍歷一維陣列,為O(n)
空間複雜度:只需要一維陣列的儲存空間O(n)
5.心得體會(對本次實踐收穫及疑惑進行總結)
要注意如果全部都為負數的情況。
相關推薦
演算法第三章上機實驗報告
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
第三章上機實驗報告
7-1 數字三角形 題目描述: 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 輸入格式: 輸入有n+1行:
演算法第3章上機實驗報告
演算法第3章上機實踐報告 實踐報告任選一題進行分析。內容包括: 1.實踐題目 7-1數字三角形 2.問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3.演算法描述 我
算法第三章上機實驗報告
str style 二維數組 -a class 遇到 esp 基本 user 1.實踐題目:7-1 數字三角形 (30 分) 2.問題描述: 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向
演算法第四章上機實驗報告
題目:刪數問題 問題描述:輸入一個正整數a和一個正整數k(k≤n ),在n位正整數a中去掉其中任意k個數字後,剩下的數字按原次序排列組成一個新 的正整數。 演算法描述:從前往後進行比較,刪掉升序的最後那個數,若一直保持升序,則刪掉最後一位數,重複k次,刪掉k個數 時間複雜度:該演算法主要進行了
演算法第五章上機實驗報告
工作分配問題: 問題描述:已知n的值與每個工作分配給其中一人的費用,n件工作分配給n個人,一二維陣列記錄工作i分配給第j個人所需的費用為c[i][j] 。 設計一個演算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小(需要注意的是每個人只能被分配到一項工作) 演算法描述: 解
『嗨威說』演算法設計與分析 - PTA 數字三角形 / 最大子段和 / 編輯距離問題(第三章上機實踐報告)
本文索引目錄: 一、PTA實驗報告題1 : 數字三角形 1.1 實踐題目 1.2 問題描述 1.3 演算法描述 1.4 演算法時間及空間複雜度分析 二、PTA實驗報告題2 : 最大子段和 2.1 實踐題目 2.2 問題描述 2.
演算法第3章上機實踐報告
1、實踐題目 數字三角形 2、問題描述 給定一個由 n行數字組成的數字三角形如下圖所示。試設計一個演算法,計算出從三角形 的頂至底的一條路徑(每一步可沿左斜線向下或右斜線向下),使該路徑經過的數字總和最大。 3、演算法描述 文字描述:新建一個二維陣列b,用來記錄當前數的上一層累加的最大值。由
[作業系列]演算法第3章上機實踐報告
1.實踐題目 7-3編輯距離問題 2.問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到 B的編輯距離,記
演算法第三章上機實踐
1.實踐題目 最大子段和 2.問題描述 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,定義子段和為0。 要求演算法的時間複雜度為O(n)。 輸入格式: 輸入有兩行:
算法第三章上機實踐報告
隊友 ace i++ pac 要求 全部 表示 報告 實踐 1、實踐題目: 最大子段和 2,問題描述: 給定n個整數(可能為負數)組成的序列a[1],a[2],a[3],…,a[n],求該序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。當所給的整數均為負數時,
第三章上機實踐報告
1.實踐題目 7-3編輯距離問題 2.問題描述 設A和B是2個字串。要用最少的字元操作將字串A轉換為字串B。這裡所說的字元操作包括 (1)刪除一個字元; (2)插入一個字元; (3)將一個字元改為另一個字元。 將字串A變換為字串B所用的最少字元運算元稱為字串A到
演算法第四章上機實踐報告
一、實踐題目 7-1 最優合併問題 題目描述:存在k個排好的序列,要用二路合併演算法將其合併成一個序列。將長度 為m和長度為n的序列合併需要比較m+n-1次,現在要求進行合併操作時,所需要的 總比較次數最多和最少的次數。輸入k,接下來的k個數為k個序列的長度 樣例1: //輸入
【實踐】演算法第四章上機實踐報告
1. 實踐題目:卡了很久的”刪數問題“ 2. 問題描述: 給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成一個新 的正整數。對於給定的n位正整數a和正整數 k,設計一個演算法找出剩下數字組成的新數最小的刪數方案。 要求輸出最小數。如:給定a = 178543,k = 4,則輸出
演算法第5章上機實踐報告
一、實踐題目 7-2 工作分配問題 (20 分) 設有n件工作分配給n個人。將工作i分配給第j個人所需的費用為cij 。 設計一個演算法,對於給定的工作費用,為每一個人都分配1 件不同的工作,並使總費用達到最小。 輸入格式: 輸入
演算法第五章上機實踐報告
一、實踐題目:工作分配問題 二、問題描述: 將現有的 n 件工作分配給 n 個人。已知將工作 i 分配給第 j 個人所需的費用為 cij 。對於給定的工作費用,為
第五章上機實驗報告
1. 實踐題目及問題描述 工作分配問題;n件工作分配給n個人,為每一個人都分配1 件不同的工作,工作i分配給第j個人所需的費用為cij,設計一個演算法,使總費用最小。 2. 演算法描述 (1) &n