分治法求数组最大值 c语言,使用分治法求最大子数组的下标。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
int max(int a[],int left,int right);
int maxcross(int a[],int left,int right,int middle);
int xyzleft,xyzright;
int main()
{
int T;
int asd;
int num[100000];
scanf("%d",&T);
while(T--)
{
scanf("%d",&asd);
getchar();
int i;
for(i=0;i
{
scanf("%d",&num[i]);
getchar();
}
printf("%d %d %d\n",max(num,0,asd),xyzleft+1,xyzright+1);
printf("\n");
}
return 0;
}
int maxcross(int a[],int left,int right,int middle)
{
int sumleft=0,maxleft=-1001;
for(int i=middle;i>=left;i--)
{
sumleft+=a[i];
if(sumleft>maxleft)
{
maxleft=sumleft;
xyzleft=i;
}
}
int sumright=0,maxright=-1001;
for(int i=middle+1;i<=right;i++)
{
sumright+=a[i];
if(sumright>maxright)
{
maxright=sumright;
xyzright=i;
}
}
return maxright+maxleft;
}
int max(int a[],int left,int right)
{
int leftmax,rightmax,crossmax;
if(left==right)
{
xyzleft=xyzright=0;
return a[left];
}
else
{
int mid=(left+right)/2;
leftmax=max(a,left,mid);
rightmax=max(a,mid+1,right);
crossmax=maxcross(a,left,right,mid);
if(leftmax>rightmax&&leftmax>crossmax)
return leftmax;
else if(rightmax>leftmax&&rightmax>crossmax)
return rightmax;
else
return crossmax;
}
}
分治法求数组最大值 c语言,使用分治法求最大子数组的下标。相关推荐
- c语言求不定式的最大值,C语言之四则运算表达式求值(链栈)—支持浮点型数据,负数, 整型数据运算...
运算符间的优先级关系: 链栈结构体定义: 数据域使用字符串长度为20的字符数组(故需要注意判断读取的字符串是运算符还是数值) 可支持浮点型数据,负数, 整型数据的运算 float EvaluateEx ...
- c语言指针与一维数组PPT,C语言第5章指针和一维数组.ppt
C语言第5章指针和一维数组.ppt 2019/11/5,第5章 指针与一维数组,软件学院计算机科学与技术教研室 冯海文 fhw19770704,2019/11/5,5.1 指针的概念与运算,C语言继承 ...
- c语言定义不定长数组初始化_C语言如何定义一组长度不定的数组?
1 引言 定长数组包 在平时的开发中,缓冲区数据收发时,如果采用缓冲区定长包,假定大小是 1k,MAX_LENGTH 为 1024.结构体如下: // 定长缓冲区 //公众号:c语言与cpp编程 st ...
- 在c语言中开辟一个数组空间,c语言如何在动态的结构体数组开辟新空间
#include struct record { float coef; int expn; }; void main() { int num, i; struct record *array; ar ...
- 三角形边长求高的c语言函数公式,c 求,已知三角形三边边长为abc,利用公式求面积...
优质回答 回答者:桃桃妈妈 #include #include using namespace std; void main() { float a; float b; float c; cout&l ...
- C语言实验报告求三角形面积,C语言作业,编程求三角形面积。
满意答案 oikre5602 2014.05.08 采纳率:47% 等级:9 已帮助:363人 123456789#include<stdio.h>#include<math. ...
- 分治法求解最大子数组问题
最大子数组问题求解 将数组A分成两部分,A[left...mid]和A[mid+1..right]两部分,求解最大子数组之和包含了三种可能的情况: 1.完全位于子数组A[left...mid]中,因此 ...
- 求一个二维整数数组最大子数组之和,时间复杂度为N^2
本随笔只由于时间原因,我就只写写思想了 二维数组最大子数组之和,可以 引用 一维最大子数组之和 的思想 一维最大子数组之和 的思想,在本博客上有,这里就不做多的介绍了 我们有一个最初的二维数组 ...
- 用c语言编制牛顿法程序,求解试用newton法求函数,YTU 2405: C语言习题 牛顿迭代法求根...
2405: C语言习题 牛顿迭代法求根 时间限制: 1 Sec 内存限制: 128 MB 提交: 562 解决: 317 题目描述 用牛顿迭代法求根.方程为ax3+bx2+cx+d=0.系数a,b ...
最新文章
- ESP32 One-Wire驱动功能
- php recursion,PHP与Recursion 学习笔记
- Product settype list tool - report PROD_DISPLAY_SETTYPE
- Ansible基本命令
- Docker简介与简单使用 | 技术头条
- Composer学习之————Ubuntu14.04下安装Composer
- php yii 表单title,Yii2.0-ActiveForm表单结构自定义教程
- 基础篇5-python基本数据类型讲解1.1
- 【LeetCode】【refine 2】题号:*2. 两数相加
- SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
- 传感器i2c与arduino连接_ARDUINO的I2C通信详解 - arduino读取I2C总线上连接设备的地址...
- html、input隐藏内容占空间与隐藏内容不占空间
- 用爬虫抓取新浪微博粉丝
- 健康指南:趴桌睡觉三大危害
- 一文搞懂MySQL体系架构!!
- Matlab:交换矩阵的两行(列)
- ubuntu18.04 RoboCup实物
- mysql 客户端简单搭建
- 如何将计算思维融合到C语言程序设计中,利用案例融合计算思维与C语言教学
- Atlassian In Action-Jira之推荐插件(四)
热门文章
- 5 微信公众号开发 获取 access_token
- 常用的富文本编辑器推荐
- 科学计算机java算法实现,(Java)科学型计算器开发及实现.doc
- ado.net mysql 连接池_ADO.NET数据库连接池的介绍 | 学步园
- WhqDatabase 我自己用C#开发的列式数据库
- mysql binlog 恢复指定表_Mysql用全备恢复指定表mysqlbinlog抽取某个表的信息
- java 8 删选集合 和取集合中的字段重组成集合的使用
- beetl 取list下标的问题
- dw替换多个html标签,DW查找替换的技巧
- (JAVA)Calender类