zoukankan      html  css  js  c++  java
  • 软件工程作业




    **题目要求 **

    最大连续子数组和(最大子段和)
    问题: 给定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。


    设计测试用例

    • 代码
    public int MaxSubArray(int a[],int n)  
    	{  
    	    int sum = 0,max = a[0];
    	    for(int i = 0;i < n;i++)
    	    {  
    	        if(sum < 0)
    	        	sum = a[i];
    	        else
    	        	sum += a[i];
    	        if(sum > max)
    	        	max = sum;
    	    }  
    	    return max;  
    	}  
    
    • 流程图
      avatar

    • 条件组合覆盖

      测试数组:a[] = {2,1,-5,-3,7}

      i 判断语句① 判断语句② 路径
      0 N N BDE
      1 N Y BCE
      2 N N BDE
      3 Y N ADE
      4 Y Y ACE

    **利用自动测试工具对程序进行测试 **

    • 测试结果

    avatar




    ੯ੑ∙ʔ 354449459454.354449449 369444424379.424449449
  • 相关阅读:
    TreeMap<K,V>类
    2020-3-7学习地图
    Thread类
    Redis-Windows中注册Redis后台守护进程
    Redsi-(error) NOAUTH Authentication required.
    2020-3-6学习地图
    Collection<E>接口
    Map<K,V>接口
    Set接口
    List类
  • 原文地址:https://www.cnblogs.com/rxxtn/p/8688945.html
Copyright © 2011-2022 走看看