一. 题目要求

题目:最大连续子数组和(最大子段和)

背景

问题: 给定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)第三次个人作业相关推荐

  1. 软件工程2018第二次团队作业

    传送门:软件工程(2018)团体第二次作业 一. 题目要求 请确定本团队项目的所有利益相关者,把调研结果发布到团队博客中 请团队所有成员针对目标用户确定需求调查提纲,并进行需求调研,可以采取各种你认为 ...

  2. 软件工程(2018)结对编程第一次作业

    软件工程(2018)结对编程第一次作业 本次作业要求对结对编程队友进行一次代码审查. 代码审查表如下 功能模块名称 图的邻接矩阵输出 审查人 李宗健 审查日期 2018/4/6 代码名称 图的邻接矩阵 ...

  3. 17秋 软件工程 团队第三次作业 预则立他山之石

    题目:团队作业-预则立&&他山之石 团队: 我说嘻(xì)哈(hà)你说侠 17秋 软件工程 团队第三次作业 预则立&他山之石 1.确立团队选题,建立和初步熟悉团队git的协作 ...

  4. 设计模式之工厂方法模式、抽象工厂模式的概念和实现及使用“反射技术+读取配置文件”的方法对工厂模式进行改进(软件工程综合实践课程第三周个人作业)

    文章目录 一.实验目的 二.知识总结 1.工厂方法模式简介 2.抽象工厂模式简介 3.工厂模式小结 4.利用"反射技术+读取配置文件"的方法改进程序 三.实验内容 1. 工厂模式实 ...

  5. 2016福州大学软件工程第三次个人作业-K米软件产品评测

    K米软件测评个人作业结果统计如下: 评分标准: 按照栋哥布置的第三次个人作业--K米测评制定评分标准如下: 第一部分:调研.评测 下载并使用,描述最简单直观的个人第一次上手体验. 0.5 按照描述的b ...

  6. 中石油2018年秋季C语言 试卷答案,[石油华东]《数据采集系统》2018年秋季学期在线作业...

    <数据采集系统>2018年秋季学期在线作业(一) 中石油华东作业资料www.op5n.com整理提供 一.单选题: 1.[单选题]n路的多路模拟开关,每路断开的开关的漏电流均为IR,开关的 ...

  7. 福师2018计算机应用基础,中石油华东《计算机应用基础》2018年秋学期在线作业100分答案满分...

    <计算机应用基础>2018年秋学期在线作业(一) 共题,总分:100分 时间:30分0秒 答题中 分一.单选题共20题,100分 15分 在Windows中,"写字板" ...

  8. 【软件工程实践 · 团队项目】 第一次作业

    [软件工程实践 · 团队项目] 第一次作业 Part 0 · 简 要 目 录 Part 1 · 队 伍 阵 容 Part 2 · 会 议 记 录 相 关 Part 3 · 会 议 讨 论 记 录 Pa ...

  9. 软件工程大学大三课表_专业选修课 | 面向大二、大三同学的专业选修课全面介绍来啦!...

    点击蓝字 关注我们 开学在即,又到了一年一度的选课时间,大家想好下学期要怎样选择课程了吗? 相信大家都知道在大学的学习生活中,专业选修课之于咱们工科生的重要性!所以,这一次的课程推荐,我们就来为大家盘 ...

  10. 助教日志_【沈阳航空航天大学软件工程 1,2 班】团队作业排行

    题目: 团队作业(一) 团队作业(二) 团队作业(三) 团队作业(四) 团队作业(五) 团队作业一: 评分规则: 团队介绍1' 提出团队所用模式1' 模式与本团队的对应1' 团队模式的探讨过程与选定的 ...

最新文章

  1. 致广大关注《网络规划设计师考试案例梳理、真题透解与强化训练》读者朋友的一封信...
  2. mate40能更新鸿蒙,Mate40领衔更新!鸿蒙系统首批升级机型名单:这些机型可坐等推送...
  3. 数据结构第二章线性表学习笔记
  4. Vivado生成bitstream报错,DRC NSTD-1与DRC UCIO-1]
  5. 2020\Simulation_1\3.叶节点数
  6. Mysql 5.7.10以上版本安装大坑
  7. WCF分布式开发常见错误(25):The certificate 'CN=WCFHTTPS' must have a private key
  8. LeetCode 1318. 或运算的最小翻转次数(位运算)
  9. 外设驱动库开发笔记39:按键操作驱动
  10. mac下ssh免密登陆远程服务器(linux)
  11. linux iostat来对linux硬盘IO性能进行了解
  12. Linux平台下卸载MySQL的方法
  13. java微服务架构师,兴业数金Java笔试题
  14. 从事计算机专业的人职业道德,计算机专业技术人员职业道德建设研究
  15. python批量保存网页为pdf_利用Python把网页内容转换为pdf格式文件,批量下载到本地!...
  16. python100天发音_GitHub - hhttss999/Python-100-Days: Python - 100天从新手到大师
  17. 怎么在工作中快速学习,获得晋升?——吴军得到直播实录
  18. 小米4c手机显示无服务器,小米4C手机无法开机变砖了怎么办
  19. 深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理
  20. 浙江一盗窃案犯罪嫌疑人陪朋友去警局“打酱油”被抓

热门文章

  1. Alpha版本发布说明
  2. oracle pl/sql发送邮件多个收件人问题
  3. SQL 数据库操作类
  4. Spring boot 2.1版本、2.3及以上版本使用actuator实现优雅关闭程序
  5. 31. 连续子数组的最大和
  6. Sqlserver的一些小笔记
  7. mysql压测宕机_MySQL压测时Linux中断异常飚高,原来是因为...
  8. unity打开excel表格_Excel电子表格需要双击两次才能打开问题的解决方案
  9. 爬虫实例十 爬取百度贴吧小姐姐照片
  10. Linux环境下安装Hadoop(完全分布式)