首页 > 其他 > 详细

软件第三次作业

时间:2018-04-01 13:39:37      阅读:221      评论:0      收藏:0      [点我收藏+]

实现最大子段和

1.题目描述

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

问题: 给定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。
-- 引用自《百度百科

2.算法分析

实现最大子段和有多种方法,其中包括枚举法
分治法在线算法联机算法等方法。本次我选用枚举法。

本次使用c++辅助生成代码,用Eclipse实现代码的编写以及测试。

3.算法的生成

1.求和代码

技术分享图片

2.测试代码

技术分享图片

3.运行结果

技术分享图片

3.覆盖测试

1.覆盖方法

(1)语句覆盖:所有语句被执行一次。

(2)判定覆盖:每个判定都要取所有的可能。

(3)条件覆盖:判断每个条件的所有可能至少满足一次。

(4)判定条件覆盖:同时满足判断覆盖和条件覆盖。

(5)条件组合覆盖:所有组合情况都要覆盖一次。

2.本次所选覆盖测试方法

本次所选覆盖测试方法为条件组合覆盖。

3.条件组合覆盖及其路径

(1)流程图
技术分享图片
(2)条件组合覆盖及其路径
技术分享图片
(3)测试用例
1.{-1,3,4,-2}
技术分享图片
2.{-2,-4,-8,-1}
技术分享图片
3.{-3,2,1,-6}
技术分享图片

代码链接

传送门

https://git.coding.net/wufulin/ruanjiian3.git

软件第三次作业

原文:https://www.cnblogs.com/wufulin/p/8686207.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!