• 求二维数组最大子数组的和


    结对开发成员:朱少辉,侯涛亮

    朱少辉:负责程序分析,代码编程

    侯涛亮:负责代码复审和代码测试

    设计思路:

       根据求一维子数组的最大子数组和的列子,把二维数组分解成若干个一维子数组,如m行n列的数组可分为(m+1)*m/2个子数组,在求每个一维数组的最大子数组和,把这些和放入一个数组中,求这个数组的最大值就是二维数组最大子数组的和。这种算法的时间复杂度为o(n^3)。

    代码:

    #include<iostream>
    using namespace std;
    
    void main()
    {
         int m,n,i,j,a[100][100];
         cout<<"请输入矩阵的大小(m*n):";
         cin>>m>>n;
         cout<<"请输入矩阵:"<<endl;
         for(i=0;i<m;i++)
        {
              for(j=0;j<n;j++)
             {
                    cin>>a[i][j];
              }
         }
         int sum,max=a[0][0],s[100],k=0;
         for(i=0;i<m;i++)
        {
               while(k+i<m)
              {
                     for(j=0;j<n;j++)
                    {
                           s[j]=s[j]+a[k+i][j];
                    }
                    sum=0;
                    for(j=0;j<n;j++)
                    {
                           if(s[j]+sum>s[j])
                           {
                                   sum=s[j]+sum;
                           }
                           else
                           {
                                   sum=s[j];
                           }
                           if(sum>max)
                           {
                                   max=sum;
                           }
                     }
                     k++;
               }
               k=0;
               for(j=0;j<n;j++)
              {
                     s[j]=0;
               }
          }
               cout<<"子矩阵最大值为"<<max<<endl;
    }

    总结:

    这次编程我主要负责程序分析,代码编程,这对我的编程能力有很大的提高。一维数组和二维数组求最大子数组的和的思路是差不多的,可见程序是可以分类的。通过合作我们完成的编程和测试,感到了合作和分工的重要性,还学会了当出现分歧时怎么去交流,去说服对方,收获很大。

  • 相关阅读:
    小程序中点击input控件键盘弹出时placeholder文字上移
    微服务学习记录-consul服务发现
    微服务学习记录-ocelot网关
    一些新了解到技术
    warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    linux 7 创建DNS服务器
    ESXi 主机创建datastore失败
    检查MD5
    为戴尔服务器下载ESXi
    vCenter Server上的报警消除
  • 原文地址:https://www.cnblogs.com/bingoing/p/4402066.html
Copyright © 2020-2023  润新知