zoukankan      html  css  js  c++  java
  • 返回一个整数数组中最大子数组的和-课堂训练(子数组为连续)

    设计思路:

    用随机数产生N个随机数放入一个数组里面,找到所有的子数组,并求和取最大的那个数组输出。

    代码:

    #include<iostream>
    #include<ctime>
    #define N 5
    
    using namespace std;
    
    void main()
    {
        srand(unsigned(time(NULL)));      
        //用于正负号产生
        int t;       
        //存放随机数
        int A[N];
        int B[N][N];   //存数组和
        int i,j,k;
        int sum;
    
        for(i=0;i<N;i++)
        {
            t=rand()%2;
            if(t==0)
                A[i]=rand();
            else
                A[i]=-rand();
            cout<<A[i]<<"	";
        }
    
        cout<<endl;
        for(i=0;i<N;i++)
        {
            for(j=0;j<N-i;j++)
            {
                sum=0;
                for(k=j;k<=j+i;k++)
                {
                    sum=sum+A[k];
                    B[i][j]=sum;
                }
            }
        }
        /*
        for(i=0;i<N;i++)
        {
            for(j=0;j<N-i;j++)
                cout<<B[i][j]<<"	";
            cout<<endl;
        }
        */
    
        //求最大字数组的位数
        int max=A[0];
        int x,y;
        for(i=0;i<N;i++)
        {
            for(j=0;j<N-i;j++)
            {
                if(max<B[i][j])
                {
                    max=B[i][j];
                    x=i;
                    y=j;
                }
            }
        }
        cout<<"最大子数组之和为:"<<max<<endl;
        cout<<"最大子数组为:";
        for(i=0,j=y;i<=x;i++,j++)
            cout<<A[j]<<"	";
    }

    总结:设计思路方面没有实现要求的时间复杂度O(n),编程代码还是书写不规范仍需改善。

    总结表:

    周活动总结表

    日期

    任务

    听课

    编写程序

    上网查询资料

    日总计

    周日

    120

    30

    150

    周五

    110

    20

    130

    周六

    20

    20

    具体总结表

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/20

    10:00

    12:00

    10

    110

    上课

    软件工程概论

    3/20

    20:00

    20:20

    20

    上网

    查询资料

    3/21

    15:00

    15:20

    20

    上网

    查询资料

    3/22

    14:00

    16:20

    20

    120

    编程

    作业

    3/22

    13:00

    13:30

    30

    上网

    查询资料

    缺陷总结表

    日期

    编号

    类型

    进入阶段

    排除阶段

    修复时间

    3/20

    1

    少括号

    编程

    编译

    lmin

    2

    未定义初始数值

    编程

    编译

    lmin

    3

    时间复杂度

    设计

    编译

    (未完善没做到On))

  • 相关阅读:
    [学习笔记] 网络最大流的HLPP算法
    [学习笔记] LCT 初步
    js中函数的原型及继承
    关于js中函数的一点总结
    关于css实现水平及垂直居中的方法记录
    js基础总结03 --操作数组
    近期学习es6后对变量提升及let和const的一点思考
    用css和js实现侧边菜单栏点击和鼠标滑动特效
    用css或js实现文本输入框的特效
    Jmeter怎样打印日志
  • 原文地址:https://www.cnblogs.com/dyc940210/p/4361264.html
Copyright © 2011-2022 走看看