第八章的问题是常见的---最大自序列和 的问题
书中提供了几种求出最大和的方法,下面的实现是依据“扫描算法”的实现,不仅仅得到了最大和的值,还返回了对应自序列的索引起始值
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;
}
}
对“分治算法”的实现还有些疑惑,等彻底搞明白再说吧。
分享到:
相关推荐
- 自回归积分移动平均模型(ARIMA):适用于非平稳时间序列,结合了差分和ARMA模型。 - 季节性ARIMA(SARIMA):针对具有季节性的时间序列。 5. 模型选择与参数估计:使用如AIC(赤池信息准则)和BIC(贝叶斯信息...
本文将深入讲解C语言版《数据结构》第八章中涉及的排序算法,包括归并排序、交换排序(快速排序和冒泡排序)、插入排序、选择排序以及它们之间的比较。 一、归并排序 归并排序是一种分治策略的体现,它将大问题分解...
本章主要讨论了时间序列模型参数的统计推断,这是理解和应用这些模型的关键步骤。下面我们将深入探讨相关知识点。 1. **时间序列的基本概念**: - 时间序列是一系列按照时间顺序排列的数据点,每个数据点对应一个...
第八章通常涵盖了图算法,这是计算机科学中一个非常关键的主题,涉及到许多实际问题的解决,如网络调度、最短路径计算、最小生成树等。这里我们将对第八章的习题进行一些主要知识点的讨论。 1. **图的基本概念**:...
在《Python程序设计与算法基础教程(第二版)》的第五章中,主要探讨了序列数据类型,并提供了多个上机实践题目,旨在帮助读者更好地理解和掌握Python中的序列操作。以下是这些练习题涉及的关键知识点和详细解释: ...
本实验的主要内容建立在第四章串的知识之上,需要清楚掌握串的基本概念、串的存储结构、模式匹配算法等知识。通过实验,我们对串的算法的实现有了深刻的理解。 知识点: 1. 字符串的基本概念:字符串是计算机科学...
计算机软件及应用第八章:排序PPT课件 这章节主要讲解了排序的概念和种类,掌握了五类基本排序的算法思想、算法实现和性能分析。排序是将一个数据元素(或记录)的任意序列,重新排列成一个按关键字有序的序列。...
在描述中提到的自测卷中,涉及了关于二叉树的一些基本概念和性质,让我们逐一解析: 1. **二叉链表存储结构**:二叉树可以用链表来存储,称为二叉链表,其中每个节点包含两个指针,分别指向其左子节点和右子节点。...
第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...
第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...
本文将对第八章的排序算法进行详细的介绍和分析。排序算法是将无序序列排成有序序列的运算。在排序算法中,稳定性是指任何数值相等的元素,排序以后相对次序不变。稳定性只对结构类型数据排序有意义。 插入排序 ...
1. 栈的输入序列和输出序列:在选择题3、4、5、6、7、8、9、10、11、12中,考察了栈的输入序列和输出序列的关系。 2. 栈的应用场景:栈可以应用于表达式求值、函数调用、递归函数等场景中。 四、队列的基本操作 1...
计算机软件及应用第八章主要探讨的是排序算法,这是在数据处理和编程中极其关键的一环。排序是指将一组数据元素(通常称为记录)按照特定的关键字(如数值、字母顺序等)进行重新排列,使得整个序列满足非递减或非...
《第8章 排序》 排序是计算机科学中一种重要的基础操作,它涉及将一组数据按照特定的顺序(通常是升序或降序)进行排列。本章将深入探讨排序的基本概念、各种内部排序方法以及它们的性能分析。 首先,我们要理解...
后四章,即第五章到第八章,通常涉及更深入的概率理论和统计推断,是学习者需要重点掌握的部分。以下是这四章的主要知识点: 第五章:随机变量及其分布 本章主要讲解了随机变量的概念,包括离散型随机变量和连续型...
在C语言版本的数据结构课程中,第八章重点讲解了排序这一主题,这是处理数据时非常关键的操作,特别是在数据分析、数据库管理等领域。 排序是指将一组数据元素(如数字或记录)从任意顺序重新排列成按照特定关键字...
数据结构第八章内部排序是指在内存中对数据进行排序的算法和技术。本章主要介绍了内部排序的评价指标、稳定性、关键字相同的元素经过排序后相对顺序是否发生改变等概念,并对插入排序、折半插入排序、希尔排序、冒泡...
第8章 线性时间排序 第9章 中位数和顺序统计学 第三部分 数据结构 第10章 基本数据结构 第11章 散列表 第12章 二叉查找树 第13章 红黑树 第14章 数据结构的扩张 第四部分 高级设计和分析技术 导论 第15章 动态规划 ...
在第8章《排序技术》中,我们将会详细探讨排序的各种方法及其理论基础。 首先,排序的基本概念包括了对记录集合中元素的排序定义,记录集合中的每一个元素都对应一个关键码,排序的目的就是将这些元素根据关键码...