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/)

  • 相关阅读:
    MySQL优化实例
    MySQL优化步骤和my.cnf优化配置
    linux高负载下mysql数据库彻底优化
    MySQL配置文件my.cnf详解
    CentOS Linux下MySQL 5.1.x的安装、优化和安全配置
    Apache 配置文件详解
    [LeetCode] Number of Boomerangs
    [LeetCode] Binary Watch
    [LeetCode] Reverse Linked List
    [LeetCode] Maximum Product of Three Numbers
  • 原文地址:https://www.cnblogs.com/Aliqiao/p/5321866.html
Copyright © 2011-2022 走看看