【算法导论C++代码】最大子数组
#define Inf 65535
#include <iostream>
using namespace std;
void FindMaxCrossingSubarray(int *Array, int low, int mid, int high,
int &maxLeft,int &maxRight, int &sum); void FindMaxmumSubarry(int *Array,int low,int high,
int &relow,int &rehigh,int &resum); void main()
{
int Array[]={,-,-,,-,-,
-,,,-,,-,-,,-,};
cout<<"分治策略,求最大子数组"<<endl;
int low,high,sum;
FindMaxmumSubarry(Array,,,low,high,sum);
cout<<"买入天数"<<low<<"卖出天数"<<high<<"总盈利"<<sum<<endl;
system("pause"); } void FindMaxCrossingSubarray(int *Array, int low, int mid, int high,
int &maxLeft,int &maxRight, int &sum)
{
int leftSum = -Inf;
sum=;
for(int i=mid;i>low;i--)
{
sum=sum+Array[i];
if(sum>leftSum)
{
leftSum=sum;
maxLeft=i;
}
} int rightSum = -Inf;
sum=;
for(int j=mid+;j<high;j++)
{
sum=sum+Array[j];
if(sum>rightSum)
{
rightSum=sum;
maxRight=j;
}
} sum=leftSum+rightSum;
}
void FindMaxmumSubarry(int *Array,int low,int high,
int &relow,int &rehigh,int &resum)
{
if (high==low)
{
relow=low;
high=rehigh;
resum=Array[low];
}
else
{
int mid=(low+high)/;
int leftLow,leftHigh,leftSum,
rightLow,rightHigh,rightSum,
crossLow,crossHigh,crossSum;
FindMaxmumSubarry(Array,low,mid,leftLow,leftHigh,leftSum);
FindMaxmumSubarry(Array,mid+,high,rightLow,rightHigh,rightSum);
FindMaxCrossingSubarray(Array,low,mid,high,crossLow,crossHigh,crossSum); if (leftSum>=rightSum&&leftSum>=crossSum)
{
relow=leftLow;
rehigh=leftHigh;
resum=leftSum;
}
else if(rightSum>=leftSum&&rightSum>=crossSum)
{
relow=rightLow;
rehigh=rightHigh;
resum=rightSum;
}
else
{
relow=crossLow;
rehigh=crossHigh;
resum=crossSum;
}
}
}
【算法导论C++代码】最大子数组的更多相关文章
- 【算法导论C++代码】Strassen算法
简单方阵矩乘法 SQUARE-MATRIX-MULTIPLY(A,B) n = A.rows let C be a new n*n natrix to n to n cij = to n cij=ci ...
- 【算法导论C++代码】归并排序
一个归并排序卡了一天最后还是归并算法有问题,最初是为了把算法导论的伪代码转到c++而加了一些东西,其中在对左右数组的赋值那里出了问题.因为进行测试时不完全,就是只用书上的数组进行测试时,归并算法部分还 ...
- 基于visual Studio2013解决算法导论之005原地随机排列数组
题目 原地随机排列数组 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <malloc.h> ...
- 字符串匹配之KMP算法(续)---还原next数组
相信通过今天的文章,你会对KMP的认识更加深入一层,不止停留在知道怎样计算的层面上了,废话不多说,開始. 通过前面的第一篇文章,知道了怎么求next数组,相信非常多喜欢刨根问底的人就会问,我依照你的做 ...
- 【Coding算法导论】第4章:最大子数组问题
Coding算法导论 本系列文章主要针对算法导论一书上的算法,将书中的伪代码用C++实现 代码未经过大量数据测试,如有问题,希望能在回复中指出! (一)问题描述 给定一个数组,求数组中连续的子数组的和 ...
- 在Eclipse中使用Junit进行单元测试练习 实现最大子数组和算法
1.如何在MAC OS X下安装配置java开发工具 http://www.cnblogs.com/coderL/p/5939541.html 2.最大子数组和算法 附上程序运行及测试截图,源码见后 ...
- ubuntu16.04下配置JDK 1.8+安装Java EE,并实现最大子数组算法
软工第二次作业: 1.在个人电脑中安装一个集成开发环境(Microsoft Visual Studio.Eclipse或其它工具均可),要求该环境能够提供单元自动测试功能: 2.记录安装过程,并将全部 ...
- 【LeetCode-面试算法经典-Java实现】【053-Maximum Subarray(最大子数组和)】
[053-Maximum Subarray(最大子数组和)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Find the contiguous subarray w ...
- 《算法导论》第二章demo代码实现(Java版)
<算法导论>第二章demo代码实现(Java版) 前言 表示晚上心里有些不宁静,所以就写一篇博客,来缓缓.囧 拜读<算法导论>这样的神作,当然要做一些练习啦.除了练习题与思考题 ...
随机推荐
- windows下github 出现Permission denied (publickey)
github教科书传送门:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 再学习到 ...
- window.screen.height和window.screen.availHeight和document.body.clientHeight和document.documentElement.clientHeight
说这几个属性前 我说一下我的设备 我的设备有两个,一个高度为1080的显示器,一个高度为800的电脑 第一种:window.screen.height 这个方法是获取用户电脑屏幕的高度,是不关浏览器或 ...
- Subsets I&&II——经典题
Subsets I Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a s ...
- 深度理解onmouseover事件和onmouseout事件
今天简单的讲解下onmouseover事件和onmouseout事件,一直以为它们只是简单的分别实现鼠标指针移动到元素上时触发事件和在鼠标指针移出指定的对象时触发事件,但是突然发现这些只是对它们简单的 ...
- [水煮 ASP.NET Web API2 方法论](1-2)在 WebForm 应用程序中添加 ASP.NET Web API
问题 怎么样将 Asp.Net Web Api 加入到 Asp.Net Web From 应用程序中 解决方案 在 Visual Studio 2013 中,创建新的 Web From,可以直接在&q ...
- 前端读者 | Web App开发入门
本文来自互联网 自Iphone和Android这两个牛逼的手机操作系统发布以来,在互联网界从此就多了一个新的名词 - Web App(意为基于WEB形式的应用程序).业界关于Web App与Nativ ...
- thinkphp+dwz完成的一个号码查询小系统
基于网友的例子(http://www.thinkphp.cn/extend/450.html),改进完成一个电话号码查询管理系统.基于thinkphp+dwz完成的电话号码查询小系统,主要改进与功能如 ...
- PHP实现选择排序
选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小( ...
- 转:Awesome Vulnerability Research
转:https://github.com/re-pronin/Awesome-Vulnerability-Research Awesome Vulnerability Research
- scrapy抓取拉勾网职位信息(二)——拉勾网页面分析
网站结构分析: 四个大标签:首页.公司.校园.言职 我们最终是要得到详情页的信息,但是从首页的很多链接都能进入到一个详情页,我们需要对这些标签一个个分析,分析出哪些链接我们需要跟进. 首先是四个大标签 ...