zoukankan      html  css  js  c++  java
  • 结对项目——最大子数组

    求数组中最大子数组的和

    一、程序要求

    1、返回一个整数数组中最大子数组的和;

    2、输入一个整数数组,数组中有正数也有负数;

    3、数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和;

    4、求所有子数组的和的最大值,要求时间复杂度为O(n);

    二、程序设计思想

        数组的长度和各个元素由键盘键入。先将各元素累加,每加一个数,看结果是否为0,若为0,重置结果,并且结果与最大子数组和(简称最大和)比较,若有更大的和,就保存较大的结果到最大和中。若最大和与结果的值均为0,说明数组为负数数组,最大子数组即为最大元素。

    三、源程序

    //李俏、张莹荧,2016.3.21
    //求整数数组的最大子数组的和
    
    #include<iostream>
    using namespace std;
    
    int main()
    {
        int arrlength,i;
        int j;
        int maxsum=0,sum=0;
        int arr[100];
    
        cout<<"请输入数组长度:";
        cin>>arrlength;
        if(arr==NULL||arrlength==0)
        {
            //exit(1);
            return 0;
        }
    
        cout<<"请输入数组元素:";
        for(i=0;i<arrlength;i++)
        {
            cin>>arr[i];
        }
     
        maxsum=0;
        sum=0;
        for(i=0;i<arrlength;i++)
        {
            sum=sum+arr[i];//累加
    
            if(sum<0)      //当前和小于0,重置为0
            {
                sum=0;
            }
    
            if(sum>maxsum) // 当前和大于最大和,则重置最大和 
            {
                maxsum=sum;
            }
        }
    
        if(maxsum==0)      //maxsum=0,说明数组中的数值均为负数
        {
            maxsum=arr[0];
            for(i=1;i<arrlength;i++)
            {
                if(arr[i]>maxsum)//求出负数数组的最大值
                {
                    maxsum=arr[i];
                }
            }
        }
        cout<<"最大子数组的和为:"<<maxsum<<endl;
    
        return 0;
    
        //for(i=0;i<arrlength;i++)
        //{
        //    sum=0;
        //    for(j=0;j<arrlength;j++)
        //    {
        //        sum += arr[j];
    
        //        if(sum<0)      //当前和小于0,重置为0
        //        {
        //            sum=0;
        //        }
    
        //        if(sum>maxsum)
        //        {
        //            maxsum=sum;
        //        }
        //    }
        //}
        //cout<<"最大子数组的和为:"<<maxsum<<endl;
        //return 0;
    }

    四、结果截图

    五、项目计划日志

    周活动总结表  

    姓名:李俏          日期:2016年3月19日

    日期   任务 听课  编写程序 阅读课本 准备考试     日总计

    周日(3.20)

      30 30        60

    周一

    120 30 30       180

    周二

      30 30       60

    周三

      30 30       60

    周四

    120   30       150

    周五

      180 30       210

    周六

      60 30       120

    周总结

    240 360

    210

          810

     

     

     

     

     

     

     

     

     

     

    六、时间记录表:

    学生:   李 俏                         日期 :2016年3月12日 

    教师:   王建民                        课程 :软件工程      

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

     3.21

    16:30

    17:00

    30

    编写程序 

    作业 

     

    20:10

    20:40

    30

    阅读

    作业

     3.22

    19:10

    19:50

    10

    30

    编写程序

    作业

     

    20:00

    20:30 

    30

    阅读

     作业

     3.23

    14:30

    15:30

    30min

    30

    编写程序

     作业

     

    20:00

    20:30 

    30

    阅读

     作业

    3.24

    18:50

    19:20

    30

    编写程序

    作业

     

    20:00

    20:30

    30

    阅读

     作业

     3.25

    13:20

    18:00

    100 

    180

    编写程序

     作业

     

    21:10

    21:40

    30

    阅读

     作业

     3.26

    12:00

     13:30

     30min

    60

    编写程序

     作业

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    七、缺陷记录日志:

    学生        李俏,张莹荧    

    日期       20163月25日   

    教员          王建民       

    程序号    2  

    日期  编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
     3.24  1 计算 设计 编译 10min  
    描述: 计算不出结果。
     3.24  2 结果 编码 编译 5min  
    描述: 没有考虑纯负数数组。
     3.24  3 算法 编码 查资料、问同学 30min  
    描述:时间复杂度不符合要求。

    八、工作照片 

    小伙伴:张莹荧(http://www.cnblogs.com/zhyying/)

  • 相关阅读:
    WAMP 2.2 配置与IIS共用单IP,多域名多网站配置方法
    [.NET MVC4 入门系列00]目录
    [.NET MVC4 入门系列04]Controller和View间交互原理
    [.NET MVC4 入门系列05]添加自定义查询页Search
    [.NET MVC4 入门系列02]MVC Movie 为项目添加Model
    [.NET MVC4 入门系列07] 在Model模型模块中添加验证
    [.NET MVC4 入门系列03]使用Controller访问Model中数据
    DateTime 类常用技巧
    Access 注意地方
    互联网公司老板的十大谎言,别对号入座
  • 原文地址:https://www.cnblogs.com/Aliqiao/p/5321866.html
Copyright © 2011-2022 走看看