算法设计与分析——最大连续子序列之和问题

本文探讨了如何分析和解决最大连续子序列之和问题,通过优化算法将时间复杂度从O(length^2)降低到O(length)。通过实例展示了如何避免不必要的负数累加,从而提高计算效率。
摘要由CSDN通过智能技术生成

最大连续子序列之和问题是用来分析时间复杂度的很好的例子,这里简要分析和记述下整个过程。

{ 3,4,-2,1,-5,-2,5}

{-2,7,4,11,-2,-8,12,1}

{-2,7,4,11,-2,-8,12,1,-3}

{ 3,-2,7,4,11,-2,-8,12,1,-3}

{-2,1,-2,3,-2,7,4,11,-2,-8,12,1,-3}

{-2,1,-2,3,-2,7,4,-11,-2,-8,-13,1,-3}

{-2,-1,-2,-3,-2,-7,-4,-11,-2,-8,-13,-1,-3}

假设有以上这些测试数据,可以很轻易的用肉眼找出它们的最大连续子序列,下面我们来设计算法,实现计算机的识别和计算过程。

首先你能想到的方法是什么呢?

对!计算每种可能,也即总数为n的数据集合共有n!种可能。

max = array[0]

循环1:sum=array[next]

    循环2:if sum>max 则 max = sum 且 sum+=array[next]

循环1每次循环都会去掉一个位于母

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值