最大連續子陣列和(最大子段和)
遞推法:在對於上述分治演算法的分析中我們注意到,若記b[j]=max(a[i]+a[i+1]+..+a[j]),其中1<=i<=j,並且i<=j<=n。則所求的最大子段和為max b[j],1<=j<=n。由b[j]的定義可易知,當b[j-1]>0時b[j]=b[j-1]+a[j],否則b[j]=a[j]。故b[j]的遞推方程為:
**如下
採用條件覆蓋的方法。#include #include "text.h"
using namespace std;
class myclass ;
void input();
int max();
int a[100], i;
};void myclass::input()
};int myclass::max()
else b[j] = a[j];
if (b[j] > max1) max1 = b[j];
} if (max1 < 0) return max1 = 0;
else return max1;
};void main()
應滿足以下覆蓋情況:
判定一:n>0,n<=0
判定二:b[j]>0,b[j-1]<=0
判定三:max>b[j],max<=b[j]
判定四:j>i,j<=i
判定五:max>0,max<=0
設計如下測試用例
(1)沒有數,max=0;
(2)全是負數,-2,-2,-4,-3,-5,-2,max=0;
(3)一般情況,-2, 11, -4, 13, -5, -2, max=20;
(4)全是正數,2,2,4,3,5,2 max=18;
**如下
軟體工程第三次作業
影印機的工作過程大致如下 未接到影印命令時處於 閒置 狀態,一旦接到 影印命令 則進入 影印 狀態,完成乙個影印命令 規定的工作後又回到閒置狀態,等待下乙個影印命令 如果執行影印命令時 發現沒紙 則進入 缺紙 狀態,發出警告,等待裝紙,裝滿紙 後進入閒置狀態,準備接收影印命令 如果影印時發生 卡紙故...
軟體工程第三次作業
最大連續子陣列和 最大子段和 問題 給定n個整數 可能為負數 組成的序列a 1 a 2 a 3 a n 求該序列如a i a i 1 a j 的子段和的最大值。當所給的整數均為負數時定義子段和為0,依此定義,所求的最優值為 max,1 i j n 例如,當 a 1 a 2 a 3 a 4 a 5 a...
軟體工程第三次作業
這個作業屬於哪個課程 這個作業要求在 這個作業的目標 1 對比原型設計工具 2 需求分析 3 原型設計 因為之前對原型設計一點了解都沒有,所以我選擇通過對這三款軟體的第一印象以及後面的深入了解的方式來對比這三款原型設計工具的不同之處 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img...