c语言数组前缀和,关于最大子数组问题
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
纯新手,最近想学一下算法,上网看了个教程,看到了一个很经典的返回最大子数组之和的问题,然后我想问一下我用分治法把最大和求出来了,但是要怎么返回子数组本身呢,因为是函数的递归,所以有些云里雾里。以下是我模仿着写的代码。输出结果是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语言数组前缀和,关于最大子数组问题相关推荐
- 分治法求数组最大值 c语言,使用分治法求最大子数组的下标。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include int max(int a[],int left,int right); int maxcross(int a[],int left,i ...
- 求二维数组最大子数组
结对队友:胡康臻.杨寒寒 1.设计思想: 首先定义产生二维数组,定义可输入二维数组行和列,各位数随机产生: 然后进行最大子数组的求和比较,从每行的第一个数为子数组的起点开始进行不同的子数组遍历比较,只 ...
- 求二维数组中最大子数组的和
任国庆 张博 之前我们讨论了在一维数组中求最大子数组的和,在此基础上我们开始讨论二维数组的最大子数组. 求二维数组的最大子数组思想是建立在以为数组.首先将数组的第一列看成一个一维数组,找到该列的最大 ...
- [LeetCode] Maximum Subarray 最大子数组
Find the contiguous subarray within an array (containing at least one number) which has the largest ...
- Uva 507 - Jill Rides Again(最大子数组求和问题)
题目:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- LeetCode Maximum Product Subarray(最大子数组乘积)
Find the contiguous subarray within an array (containing at least one number) which has the large ...
- 一维循环数组最大子数组求解
#include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) {int i, ...
- 分治算法-最大子数组问题
1.蛮力法求解 总体思路: 蛮力法是最简单的实现方法,只要列出数组所有可能的组合,然后找出其中和最大的组合即可: 蛮力法分三层循环实现: 1)第一层循环用于固定子数组的起始位置: 2)第二层循环用于确 ...
- 【算法】_012_最大子数组_分治法
1.009_maxsubarr_divcon.h /*************************************************************** *版权所有 (C)2 ...
最新文章
- Linux设置Oracle开机自启动
- 精彩回放 | 玩转 VS Code 物联网开发
- C++const的多种用法
- c语言while队列不为空,C语言实现循环队列的初始化进队出队读取队头元素判空-2...
- 转:ObjectInputStream类和ObjectInputStream类的使用
- 注册机patch起什么作用_单相电机的运行电容起什么作用
- 机器视觉系统中相机的分辨率怎么选择?
- 利用Microsoft.VisualBasic dll来修改系统时间
- bpa软件视频教程,BPA是什么软件
- 【游戏开发实战】Unity UGUI序列帧动画(蓝胖子序列帧图)
- sk hynix 固态硬盘 管理_5000MB/s 极速狂飙——希捷酷玩FireCuda 520 PCIE4.0 SSD固态硬盘体验...
- think-cell中类别或系列标签在多个图表中未对齐
- 用matlab计算矩阵的权重,如何使用matlab计算加权平均分
- 共轭先验分布及其应用
- iOS数据持久化设计
- 牛顿法与拟牛顿法求解比较
- 【思维导图】如何做思维导图
- matlab polyfit 拟合度,Matlab中polyfit和regress
- 完美解决:error: failed to push some refs to 'https://github.com/xxxx.git'
- DAVIS346动态视觉传感器
热门文章
- 【kafka】kafka topic某些分区 副本落后leader太多
- 10-10-030-简介-Kafka之数据存储
- 【Mac】Mac iTerm2 使用笔记 远程连接
- Spring Boot : ApplicationListner
- 【java】instanceof 性能
- 【Mavne】log4j-slf4j-impl cannot be present with log4j-to-slf4j
- 【Flink】Flink 消费kafka报错 AMRMClientAsyncImpl Interrupted while waiting for queue InterruptedException
- spark学习-37-Spark的SortShuffleManager
- php require 输出乱码,php输出乱码
- 企业最喜欢招聘什么样的Java程序员?谈谈我的看法