该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

纯新手,最近想学一下算法,上网看了个教程,看到了一个很经典的返回最大子数组之和的问题,然后我想问一下我用分治法把最大和求出来了,但是要怎么返回子数组本身呢,因为是函数的递归,所以有些云里雾里。以下是我模仿着写的代码。输出结果是30。

int MaxAddSub(int *a,int front,int end)

{ //int i1,i2;

if(front==end)

return a[front];

int Middle=(front+end)/2;//寻找中间位置

int Max_1= MaxAddSub(a,front,Middle);//求左侧的数组最大的前缀和

int Max_2= MaxAddSub(a,Middle+1,end);//求右侧的数组最大的前缀和

int i,New=0,Left=0;

for(i=Middle;i>=front;i--)

{

New+=a[i];

if(Left

{

Left=New;

//i1=i;

}

}

int Right=0;

New=0;

for(i=Middle+1;i<=end;i++)

{

New+=a[i];

if(Right

{

Right=New;

//i2=i;

}

}

int Max_3=Left+Right;

if(Max_1>Max_2&&Max_1>Max_3)

return Max_1;

if(Max_2>Max_1&&Max_2>Max_3)

return Max_2;

if(Max_3>Max_2&&Max_3>Max_1)

return Max_3;

int main()

{

int Max;

int a[9]={1,-2,3,10,-4,7,2,5,7};

Max=MaxAddSub(a,0,8);

printf("%d",Max);

return 0;

}

c语言数组前缀和,关于最大子数组问题相关推荐

  1. 分治法求数组最大值 c语言,使用分治法求最大子数组的下标。

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include int max(int a[],int left,int right); int maxcross(int a[],int left,i ...

  2. 求二维数组最大子数组

    结对队友:胡康臻.杨寒寒 1.设计思想: 首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生: 然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只 ...

  3. 求二维数组中最大子数组的和

    任国庆  张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...

  4. [LeetCode] Maximum Subarray 最大子数组

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  5. Uva 507 - Jill Rides Again(最大子数组求和问题)

    题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...

  6. LeetCode Maximum Product Subarray(最大子数组乘积)

     Find the contiguous subarray within an array (containing at least one number) which has the large ...

  7. 一维循环数组最大子数组求解

    #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) {int i, ...

  8. 分治算法-最大子数组问题

    1.蛮力法求解 总体思路: 蛮力法是最简单的实现方法,只要列出数组所有可能的组合,然后找出其中和最大的组合即可: 蛮力法分三层循环实现: 1)第一层循环用于固定子数组的起始位置: 2)第二层循环用于确 ...

  9. 【算法】_012_最大子数组_分治法

    1.009_maxsubarr_divcon.h /*************************************************************** *版权所有 (C)2 ...

最新文章

  1. Linux设置Oracle开机自启动
  2. 精彩回放 | 玩转 VS Code 物联网开发
  3. C++const的多种用法
  4. c语言while队列不为空,C语言实现循环队列的初始化进队出队读取队头元素判空-2...
  5. 转:ObjectInputStream类和ObjectInputStream类的使用
  6. 注册机patch起什么作用_单相电机的运行电容起什么作用
  7. 机器视觉系统中相机的分辨率怎么选择?
  8. 利用Microsoft.VisualBasic dll来修改系统时间
  9. bpa软件视频教程,BPA是什么软件
  10. 【游戏开发实战】Unity UGUI序列帧动画(蓝胖子序列帧图)
  11. sk hynix 固态硬盘 管理_5000MB/s 极速狂飙——希捷酷玩FireCuda 520 PCIE4.0 SSD固态硬盘体验...
  12. think-cell中类别或系列标签在多个图表中未对齐
  13. 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
  14. 共轭先验分布及其应用
  15. iOS数据持久化设计
  16. 牛顿法与拟牛顿法求解比较
  17. 【思维导图】如何做思维导图
  18. matlab polyfit 拟合度,Matlab中polyfit和regress
  19. 完美解决:error: failed to push some refs to 'https://github.com/xxxx.git'
  20. DAVIS346动态视觉传感器

热门文章

  1. 【kafka】kafka topic某些分区 副本落后leader太多
  2. 10-10-030-简介-Kafka之数据存储
  3. 【Mac】Mac iTerm2 使用笔记 远程连接
  4. Spring Boot : ApplicationListner
  5. 【java】instanceof 性能
  6. 【Mavne】log4j-slf4j-impl cannot be present with log4j-to-slf4j
  7. 【Flink】Flink 消费kafka报错 AMRMClientAsyncImpl Interrupted while waiting for queue InterruptedException
  8. spark学习-37-Spark的SortShuffleManager
  9. php require 输出乱码,php输出乱码
  10. 企业最喜欢招聘什么样的Java程序员?谈谈我的看法