从股票买卖问题转换成为一个求最大子数组问题

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
价格 100 113 110 85 105 102 86 63 81 101 94 106 101 79 94 90 97
变化 13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7
 
 
暴力求解所花费的时间是O(n^2)
采用分治技术来求解最大子数组问题,假定要求的数组为A[low..high]的最大子数组。
将子数组划分为两个规模尽可能相等的子数组,也就是说找到子数组的中央位置,比如mid,然后考虑求解两个子数组:
A[low..mid]和A[mid..high]的最大子数组,然后还一个是跨越中点的子数组。
下面是一个示意图
 
 

转载于:https://www.cnblogs.com/tuhooo/p/5592894.html

分治策略之最大子数组问题相关推荐

  1. 算法导论读书笔记 第4章 分治策略

    在第2章中,归并排序算法使用了分治策略.即在分治策略中,递归地求解一个问题,在每层递归中应包含三个步骤: 分解(Divide)步骤将问题画分为一些子问题,子问题的形式与原问题一样,只是规模更小. 解决 ...

  2. 第四章 分治策略 4.1 最大子数组问题 (暴力求解算法)

    /*** 最大子数组的暴力求解算法,复杂度为o(n2)* @param n* @return*/static MaxSubarray findMaxSubarraySlower(int[] n) {l ...

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

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

  4. java求最大子数组 (分治算法)

    当一个数组有负数时,最大子数组才会有意义. package shu.quan.demo;/*** 求最大子串的值,并求出脚标.*/ public class MaxSubsequence {stati ...

  5. 最大子数组下标java,【算法】最大子数组

    问题描述:给定一只股票在某段时间内的历史价格变化曲线,找出一个能够实现收益最大化的时间段. 理解:为找出最大化的收益,需要考虑的是在买进和卖出时的价格变化幅度,因此从该股票的每日变化幅度来考虑问题比较 ...

  6. 最大子数组 ——算法导论

    package maxZiArray; import java.util.Arrays; public class ChildArray { /* * 用于发现最大子数组 --分治策略 * param ...

  7. 算法导论—分治策略(C语言)

    在分治策略中,我们递归的求解一个问题,在每层递归中应用以下三个步骤: 1.分解   将问题划分为一个个子问题,子问题形式与原问题一致,只是规模更小 2.解决   这里的解决是指递归的求解出子问题,或对 ...

  8. 如何从股市曲线看出买进卖出的最佳时期?利用Python和分治策略轻松搞定

    问题描述 如果我们进行过投资行为,都知道一个简单的原则:低价买进,高价卖出.例如下图所示的曲线,股票价格是一直在波动的,我们想知道哪天买入,哪天卖出,收益最高.如下图所示,是一个很好的示例: 这个问题 ...

  9. 算法导论 第一部分 第四章-分治策略

    算法导论 第一部分 第四章-分治策略 我们知道分治策略,就是3个步骤,分解.解决.合并. 子问题足够大,需要递归解决,叫做递归情况. 子问题足够小,就进入了基本情况. 递归式 递归式可以很方便的表示算 ...

最新文章

  1. python调用有道词典_菜鸟上手Python最有野心的库Asyncio
  2. netsuite 数据集成_Java中带有NetSuite数据实体的对象关系映射(ORM)
  3. Python-关于正则表达式的总结
  4. [asp.netMVC]通过configSource提高web.config配置灵活性
  5. 如何才能在jsp文件中使用el表达式
  6. /etc/resolv.conf
  7. 基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换
  8. 拓端tecdat|R语言使用倾向评分提高RCT(随机对照试验)的效率
  9. Remoting PerfMon Service
  10. 动态规划实战4-leetcode 5.Longest Palindromic Substring
  11. std::vector 初始化的问题 reserve resize
  12. 可汗学院公开课:金融学笔记
  13. 千叶加密php,哪位大侠可以透漏一下千叶素是什么?
  14. oracle监听启动失败12560,Oracle监听器无法启动(TNS-12555,TNS-12560,TNS-00525)
  15. 第五人格服务器维护中怎么进游戏,第五人格怎么开始 第五人格怎么进入游戏?[多图]...
  16. pycharm光标变成黑框,恢复成竖线
  17. ElasticSearch(简称ES)的概念
  18. java毕业设计智能交通管控系统Mybatis+系统+数据库+调试部署
  19. 空号筛选接口的原理和优势
  20. ubuntu 安装 英伟达NVIDIA驱动

热门文章

  1. Web前端之移动端课程开发之06.bootstrap
  2. 技术晋升的评定与博弈
  3. Python 面向对象编程基础
  4. 序列化以及反序列化二叉树
  5. spark之12:集群模式概述
  6. python学习笔记(四)字典(dict)
  7. Scrapy匹配xpath时tbody标签的问题
  8. spring-boot配置readonly
  9. MySql批量更新死锁案例分析
  10. Spark 框架安全认证实现