`
mazhiyuan
  • 浏览: 62649 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

第八章 最大自序列和

阅读更多

第八章的问题是常见的---最大自序列和 的问题

 

书中提供了几种求出最大和的方法,下面的实现是依据“扫描算法”的实现,不仅仅得到了最大和的值,还返回了对应自序列的索引起始值

 

package org.waitingfortime.编程珠玑.c8;

/**
 * Created by IntelliJ IDEA.
 * User: mazhiyuan
 * Date: 12-11-1
 * Time: 下午8:09
 * 最大子序列和,求得最大值,以及自序列索引值
 */
public class MaxSum {
    public static void main(String[] args) {
        int[] aa = {31, -41, 59, 26, -53, 58, 97, -93, -23, 84};
        maxSum(aa);
    }

    public static int[] maxSum(int[] data) {
        int i = 0, start = 0, current = 0, end = 0, max = 0, sum = 0;

        while (i < data.length) {
            sum += data[i];
            if (sum > max) {
                end = i;
                start = current;
                max = sum;
            } else if (sum < 0) {
                sum = 0;
                current = i + 1;
            }

            i++;
        }

        int[] res = {max, start, end};
        
        return res;
    }
}

 

对“分治算法”的实现还有些疑惑,等彻底搞明白再说吧。

分享到:
评论

相关推荐

    算法导论 第二版

    第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...

    算法导论(第二版 中文高清版)

    第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...

    算法导论 第二版 (完整版)

    第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...

    C++ STL开发技术导引(第5章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    C++ STL 开发技术导引(第6章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    C++ STL开发技术导引(第3章)

    第8章 list双向链表容器 116 8.1 list技术原理 116 8.2 list应用基础 124 8.3 本章小结 131 第9章 slist单向链表容器 132 9.1 slist技术原理 132 9.2 slist应用基础 140 9.3 本章小结 148 第10章 ...

    数字信号处理第8章PPT

    1.掌握时域离散随机信号的统计描述、平稳随机序列通过线性时不变系统的响应特性、随机序列特征值的估计、时间序列信号模型等理论和方法;约占30%。  2.掌握维纳滤波和卡尔曼滤波的基本理论、算法及其应用;约占...

    算法导论(part1)

    第8章 线性时间排序 8.1 排序算法时间的下界 8.2 计数排序 8.3 基数排序 8.4 桶排序 第9章 中位数和顺序统计学 9.1 最小值和最大值 9.2 以期望线性时间做选择 9.3 最坏情况线性时间的选择 第三部分 ...

    《Visual C++范例大全》随书光盘 第八章

    第8章 实例173——在视图中使用鼠标进行绘图操作(涂鸦) 实例174——在文档中记录绘图数据,并实现窗口重绘 实例175——通过序列化保存文档 实例176——当文档被修改时在标题上给出提醒 实例177——使用对话框...

    算法设计与分析(王晓东) 算法设计与分析电子教案

    算法设计与分析课后答案 520页 pdf(王晓东) 算法设计与分析(王晓东)电子教案 PPT 目前我也正看这个 (要是觉得这个不值这个分,说一下,我去你那里随便下...第8章 线性规划与网络流 第9章 NP完全性理论与近似算法

    数据结构第九章 查找作业及答案(100分).docx

    8. 设输入序列为{20,11,12,…},构造一棵平衡二叉树,当插入值为12的结点时发生了不平衡,则应该进行的平衡旋转是( )。 A. LL B. LR C. RL D. RR 二、填空题(每空3分,共24分)。 1.在有序表A[1..18]中,采用二分...

    STL源码剖析.pdf(侯捷,完整版,已加全书签)

    本書假設你對STL 已有基本認識和某種程度的運用經驗。因此除了第㆒章略作介 紹之外,立刻深入STL 技術核心,並以STL 六大組件(components)為章節之進 行依據。以㆘是各章名稱,這樣的次序...第8 章 配接器(adapter)

Global site tag (gtag.js) - Google Analytics