任国庆  张博

之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组。

求二维数组的最大子数组思想是建立在以为数组。首先将数组的第一列看成一个一维数组,找到该列的最大子数组的值,然后将第二列与第一列看成是一个新一列,这样就又出现了一个新的一维数组,重复以上的步骤,就可以全部搜索二维数组,找到其中最大子数组的值。

#include "stdafx.h"
int main()
{int m,n,i,j,k,z;static int  q=0,b;printf("请输入数组的行数和列数\n");scanf("%d%d",&q,&b);int sum1,sum[100];int a[100][100];int max=0;printf("请输入数据\n");for(i=0;i<q;i++){for(j=0;j<q;j++){scanf("%d",&a[i][j]);}}for(m=0;m<q;m++){for(k=0;k<q;k++){sum[k]=0;}                            //初始化for(j=m;j<q;j++){for(i=0;i<q;i++){sum[i]+=a[i][j];}                       //求行的值变成一维数for(n=0;n<q;n++){sum1=0;for(z=n;z<q;z++){sum1+=sum[z];if(sum1>max){max=sum1;}}}}}printf("最大值为%d\n",max);return 0;
}

一下是我们组讨论的图

实验结果

实验猜想

基于以上的讨论我们组找到了二维数组中最大子数组的值,但是这方法比较笨,时间复杂度是O(n*3).所以我们猜想应该找到一个算法,以数组中最大值为一点,进行扩散的寻找最大子数组的值,这样程序执行起来时间复杂度会降低,因此我们组将继续讨论,以降低时间复杂度.

转载于:https://www.cnblogs.com/zhangbo2011/p/3611741.html

求二维数组中最大子数组的和相关推荐

  1. 求二维整数数组中最大子数组的和(结对作业)

    题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...

  2. 课堂练习:返回一个二维数组中最大子数组的和

    1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  3. 返回一个首尾相接的二维整数数组中最大子数组的和

    题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...

  4. 返回一个二维整数数组中最大子数组的和(二人结对)

    题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...

  5. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

  6. 返回一个整数数组中最大子数组的和---环形数组

    一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...

  7. 返回一个整数数组中最大子数组的和。

    一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...

  8. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

  9. 返回一个循环数组中最大子数组的和

    设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...

最新文章

  1. 面试官:你说你精通Redis,你看过持久化的配置吗?
  2. 水晶报表-简单数据类型(Crystal 语法)
  3. 4、Orcal数据库dmp文件导入
  4. eclipse打断点调试进入到class文件中,不显示变量值的解决办法汇总
  5. python 代码检查工具
  6. word2vec是如何得到词向量的?
  7. KEIL中无IAP或者STC芯片型号怎么办
  8. OppoR17被查找手机锁死问题解锁
  9. 1415-2个人读后感作业
  10. Windows XP中的命令行界面
  11. Error creating bean with name ‘user‘ defined in file //Pointcut is not well-formed: expecting
  12. 采访:应用软件定制化有什么优点?
  13. FormData数据格式
  14. Ta-Lib用法介绍 !
  15. 教父母使用手机的功能提纲
  16. SpringMvc思维导图
  17. [VLDB 2021]ICS-GNN_ Lightweight Interactive Community Search via Graph Neural Network
  18. 尚硅谷Nginx新版升级教程,带你轻松掌握高并发系统架构
  19. 2022年中式烹调师(中级)最新解析及中式烹调师(中级)找解析
  20. 【Ethercat机器人控制系统开发】倍福Twincat入门教程

热门文章

  1. 一笔画问题【数据结构-图论】
  2. linux下配置vnc的方法
  3. C#:消息队列应用程序
  4. 怎么样给下拉框加载背景色
  5. Spring源码分析【9】-SpringSecurity密码Remove原理
  6. 指针的本质--u_char*指针在Nginx源码中的应用及原因
  7. C和C++安全编码笔记:格式化输出
  8. TensorRT Samples: CharRNN
  9. 【TX2】英伟达Nvidia TX2连接蓝牙设备
  10. win10服务器权限修改时间,win10系统修改时间显示没权限的解决方案