最长子序列和的问题。
时间复杂度从O(n3)到O(n)...
分类:
编程语言 时间:
2014-07-24 10:40:34
阅读次数:
216
对于 《数据结构与算法分析——C语言描述》 一书第
20 页所描述的算法 3,相信会有很多人表示不怎么理解,下面我由具体问题的求解过程出发,谈谈我自己的理解:
首先,什么是分治法呢?所谓 分治法,就是 将一个问题的求解过程分解为两个大小相等的子问题进行求解,如果分解后的子问题本身也可以分解的话,则将这个分解的过程进行下去,直至最后得到的子问题不能再分解为止,最后将子问题的解逐步合并并可能...
分类:
其他好文 时间:
2014-07-01 11:03:52
阅读次数:
169
问题描述: 输入一组整数,求出这组数字子序列和中最大值。也就是只要求出最大子序列的和,不必求出最大的那个序列。例如:序列:-2 11 -413 -5 -2,则最大子序列和为20。序列:-6 2 4 -7 5 3 2 -1 6 -9 10 -2,则最大子序列和为16。算法一://穷举法,复杂度O(n^...
分类:
其他好文 时间:
2014-06-27 11:16:14
阅读次数:
212
maxSubSum分别是最大子序列和的4中java算法实现。
第一种算法运行时间为O(N^3),第二种算法运行时间为O(N^2),第三种算法运行时间为O(nlogn),第四种算法运行时间为线性N
测试
public class Test {
public static void main(String[] args) {
int[] a = {-2, 11, -4, 13, -5, -...
分类:
编程语言 时间:
2014-06-24 18:30:19
阅读次数:
284
问题——
给定N个整数(有可能是负数)A1,A2,A3,A4...An,求最大子序列和。
(子序列必须是连续的);比如,对于输入,-2,11,-4,13,-5,-2;这个序列,
答案是20,即从A2到A4。
对于这个问题,你怎么想的呢?下面有四种解法,看看你的解法是不是其中之一。
解法一、穷举
解题思路——
既然是求某一个连续的子序列的最大和,那么我们把所有的子序列的和都加一遍...
分类:
其他好文 时间:
2014-06-22 08:06:08
阅读次数:
237
动态规划的算法:#includeint MaxSubsequenceSum(const int A[],int n){ int i,sum,MaxSum; sum=MaxSum=0; for(i=0;iMaxSum) MaxSum=sum; if...
分类:
其他好文 时间:
2014-06-18 17:56:31
阅读次数:
139
问题
给定整数: A1,A2,…,An,
求∑jk=iAk 的最大值(为方便起见,如果所有的整数均为负数,则最大子序列和为0)
例如
对于输入:-2,11,-4,13,-5,-2,答案为20,即从A2到A4
分析
这个问题之所以有意思,是因为存在很多求解它的算法。...
分类:
编程语言 时间:
2014-06-08 15:42:23
阅读次数:
265
算法1
用两个for循环定位子序列的上下界,然后再用最内部的一个for循环求出上下界之间的元素和。
时间复杂度:O(N³)。
代码:
int MaxSub(int *a, int n)
{
int sum = 0;
int tmp;
for (int i = 0; i < n; i++)
{
for (int j = i; j <...
分类:
其他好文 时间:
2014-05-25 21:28:44
阅读次数:
243
就拿杭电OJ上的第1003题开始吧,这题比原书要复杂一些。
Problem Description
Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum...
分类:
其他好文 时间:
2014-05-22 07:07:27
阅读次数:
322