软件工程(2018)第三次个人作业
一. 题目要求
题目:最大连续子数组和(最大子段和)
背景
问题: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n
例如,当(a[1],a[2],a[3],a[4],a[5],a[6])=(-2,11,-4,13,-5,-2)时,最大子段和为20。
-- 引用自《百度百科》
选择覆盖标准
请从语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖五个覆盖标准中(条件组合覆盖难度较大,鼓励尝试,但请谨慎选择),任选一个标准设计测试用例,并利用自动测试工具对程序进行测试。
问题分析
要找到最大连续子数组,对数组内每一个数a[i]进行遍历,然后遍历以它们为起点的子数组,比较各个子数组的大小,找到最大连续子数组。该算法采用两层循环,时间复杂度为O(n2)。
测试方面,我采用条件覆盖进行测试,即对判定的每个条件应取到各种可能的值。条件真假都至少要出现一次。
二.问题解决
四.JAVA代码
package demo;public class MaxArry {public static void main(String[] args) {// TODO Auto-generated method stubint []a= {1,2,3,4};int n = 4;int Max ;Max = MaxSum(a,n);System.out.println(Max);}public static int MaxSum(int []b,int n) {int sum=0;//最大子数列和//寻找最大子数列for (int i=0;i<n; i++){int thisSum=0;//当前数列for (int j = i; j < n; j++){thisSum = thisSum+b[j];if (thisSum>sum){sum = thisSum;}}}return sum;}}
程序运行结果:
选择条件覆盖进行测试时,只需选择{1,2,-1,3,-3,4}一组测试用例即可完成条件覆盖。
测试代码:
package demo;import static org.junit.jupiter.api.Assertions.*;import org.junit.jupiter.api.Test;class MaxArryTest {@Testpublic void test() {int[] a= {1,2,-1,3,-3,4};assertEquals(6,new MaxArry().MaxSum(a,6));}
}
自动测试分析结果:
将完整代码提交至Coding.net系统中,代码地址:
https://git.coding.net/heimanbaYK/maxsum.git
转载于:https://www.cnblogs.com/YKheimanba/p/8686130.html
软件工程(2018)第三次个人作业相关推荐
- 软件工程2018第二次团队作业
传送门:软件工程(2018)团体第二次作业 一. 题目要求 请确定本团队项目的所有利益相关者,把调研结果发布到团队博客中 请团队所有成员针对目标用户确定需求调查提纲,并进行需求调研,可以采取各种你认为 ...
- 软件工程(2018)结对编程第一次作业
软件工程(2018)结对编程第一次作业 本次作业要求对结对编程队友进行一次代码审查. 代码审查表如下 功能模块名称 图的邻接矩阵输出 审查人 李宗健 审查日期 2018/4/6 代码名称 图的邻接矩阵 ...
- 17秋 软件工程 团队第三次作业 预则立他山之石
题目:团队作业-预则立&&他山之石 团队: 我说嘻(xì)哈(hà)你说侠 17秋 软件工程 团队第三次作业 预则立&他山之石 1.确立团队选题,建立和初步熟悉团队git的协作 ...
- 设计模式之工厂方法模式、抽象工厂模式的概念和实现及使用“反射技术+读取配置文件”的方法对工厂模式进行改进(软件工程综合实践课程第三周个人作业)
文章目录 一.实验目的 二.知识总结 1.工厂方法模式简介 2.抽象工厂模式简介 3.工厂模式小结 4.利用"反射技术+读取配置文件"的方法改进程序 三.实验内容 1. 工厂模式实 ...
- 2016福州大学软件工程第三次个人作业-K米软件产品评测
K米软件测评个人作业结果统计如下: 评分标准: 按照栋哥布置的第三次个人作业--K米测评制定评分标准如下: 第一部分:调研.评测 下载并使用,描述最简单直观的个人第一次上手体验. 0.5 按照描述的b ...
- 中石油2018年秋季C语言 试卷答案,[石油华东]《数据采集系统》2018年秋季学期在线作业...
<数据采集系统>2018年秋季学期在线作业(一) 中石油华东作业资料www.op5n.com整理提供 一.单选题: 1.[单选题]n路的多路模拟开关,每路断开的开关的漏电流均为IR,开关的 ...
- 福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...
<计算机应用基础>2018年秋学期在线作业(一) 共题,总分:100分 时间:30分0秒 答题中 分一.单选题共20题,100分 15分 在Windows中,"写字板" ...
- 【软件工程实践 · 团队项目】 第一次作业
[软件工程实践 · 团队项目] 第一次作业 Part 0 · 简 要 目 录 Part 1 · 队 伍 阵 容 Part 2 · 会 议 记 录 相 关 Part 3 · 会 议 讨 论 记 录 Pa ...
- 软件工程大学大三课表_专业选修课 | 面向大二、大三同学的专业选修课全面介绍来啦!...
点击蓝字 关注我们 开学在即,又到了一年一度的选课时间,大家想好下学期要怎样选择课程了吗? 相信大家都知道在大学的学习生活中,专业选修课之于咱们工科生的重要性!所以,这一次的课程推荐,我们就来为大家盘 ...
- 助教日志_【沈阳航空航天大学软件工程 1,2 班】团队作业排行
题目: 团队作业(一) 团队作业(二) 团队作业(三) 团队作业(四) 团队作业(五) 团队作业一: 评分规则: 团队介绍1' 提出团队所用模式1' 模式与本团队的对应1' 团队模式的探讨过程与选定的 ...
最新文章
- 致广大关注《网络规划设计师考试案例梳理、真题透解与强化训练》读者朋友的一封信...
- mate40能更新鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
- 数据结构第二章线性表学习笔记
- Vivado生成bitstream报错,DRC NSTD-1与DRC UCIO-1]
- 2020\Simulation_1\3.叶节点数
- Mysql 5.7.10以上版本安装大坑
- WCF分布式开发常见错误(25):The certificate 'CN=WCFHTTPS' must have a private key
- LeetCode 1318. 或运算的最小翻转次数(位运算)
- 外设驱动库开发笔记39:按键操作驱动
- mac下ssh免密登陆远程服务器(linux)
- linux iostat来对linux硬盘IO性能进行了解
- Linux平台下卸载MySQL的方法
- java微服务架构师,兴业数金Java笔试题
- 从事计算机专业的人职业道德,计算机专业技术人员职业道德建设研究
- python批量保存网页为pdf_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...
- python100天发音_GitHub - hhttss999/Python-100-Days: Python - 100天从新手到大师
- 怎么在工作中快速学习,获得晋升?——吴军得到直播实录
- 小米4c手机显示无服务器,小米4C手机无法开机变砖了怎么办
- 深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理
- 浙江一盗窃案犯罪嫌疑人陪朋友去警局“打酱油”被抓
热门文章
- Alpha版本发布说明
- oracle pl/sql发送邮件多个收件人问题
- SQL 数据库操作类
- Spring boot 2.1版本、2.3及以上版本使用actuator实现优雅关闭程序
- 31. 连续子数组的最大和
- Sqlserver的一些小笔记
- mysql压测宕机_MySQL压测时Linux中断异常飚高,原来是因为...
- unity打开excel表格_Excel电子表格需要双击两次才能打开问题的解决方案
- 爬虫实例十 爬取百度贴吧小姐姐照片
- Linux环境下安装Hadoop(完全分布式)