四种求解最大子序列和的算法

本文介绍了四种解决最大子序列和问题的算法,包括直接穷举、两层循环优化、分治策略以及线性时间复杂度的算法。通过分析和比较,展示了不同算法在时间和空间效率上的差异。

在这里插入图片描述

最大的子序列和问题:

给定整数A1,A2,...,AN(可能有负数)A_1, A_2, ..., A_N(可能有负数)A1,A2,...,AN(),求 ∑k=ijAk\sum_{k=i}^{j} A_kk=ijAk的最大值(为了方便起见,如果所有的整数均为负数,则最大子序列和为0)

算法一

这种算法应该是最容易想到的,直接穷举求解,时间复杂度为O(N3)O(N^3)O(N3)

/**
 * 最大子序列和
 * 算法一:穷举
 */

#include <stdio.h>
#include <stdlib.h>

// 求最大子序列的和
int maxSubsequenceSum1(int *arr, int n)
{
   
   
    int thisSum, maxSum, i, j, k;
    maxSum 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值