计算之魂 1.3节分治法中的错误?

Page 37
“前后两个子序列的总和最大区间中间有间隔,我们假定这两个子序列的总和最大区间分别是[p1,q1]和[p2,q2]。这时,整个序列的总和最大区间是下面三者中的最大的那一个:
(1)[p1,q1]
(2)[p2,q2]
(3)[p1,q2]”

但是,这个可以提出一个反例

序列:
[1,4,-10,4,-1,-2,3,4]
子序列为[1,4,-10,4]和[-1,-2,3,4]

则[p1,q1]对应的子序列为[1,4]
[p2,q2]对应的子序列为[3,4]
[p1,q2]对应的子序列为[1,4,-10,6,-1,-2,3,4]

然后存在总和更大的区间[6,-1,-2,3,4]

事实上,这种反例很容易找出来。最简单的就是[K,q2] > [p2,q2],但[p1,K]<[p1,q1]。
感觉分治法并不适合"区间问题",更适合单点问题,除非可以找到解决合并后gap的处理方法。

不知道是不是我理解有错误,欢迎指正。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 矢量减法 设二维矢量 P = (x1,y1) ,Q = (x2,y2) 则矢量减法定义为: P - Q = ...
    潭潭_180阅读 2,299评论 0 1
  • 分治法 将规模为N的问题分解为k个规模较小的子问题,使这些子问题相互独立可分别求解,再将k个子问题的解合并成原问题...
    饥人谷1904_陈俊锋阅读 728评论 0 0
  • 原文地址:http://www.3dgep.com/understanding-quaternios/ 转自文章:...
    徐大徐阅读 5,573评论 1 9
  • 判断点是否在线段上、判断两条线段是否相交 这里采用向量的解法。有2个概念:向量的内积和外积。内积又称为点积dot ...
    无令便逐风阅读 917评论 0 2
  • 软件测试方法课程笔记(2) 2. 黑盒测试 2.1 介绍 优点: 没有任何的偏向 无需开发知识 只考虑用户的看法 ...
    Mezereon阅读 768评论 0 1