算法分析与设计-10- 最大子段和的动态规划算法

来源:互联网 发布:商家淘宝客推广 编辑:程序博客网 时间:2024/05/16 16:10

最大子段和的动态规划算法

#include <stdio.h>#define NUM 100int a[NUM];int MaxSum(int n,int &besti,int&bestj) {    int sum = 0;    int b = 0;    int begin=0;      for(int i = 1; i <= n; i++) //从第一个数开始算起    {        if(b>0)b+=a[i];       else                   {                b=a[i];                            begin=i;                   }                           if(b > sum)        {                 sum=b;                besti=begin;                bestj=i;       }    }     returnsum; } int main(){   int n,i,j,m,maxsum;   printf("请输入整数序列的元素个数n:\n");   scanf("%d",&n);   printf("请输入各元素的值:\n");   for(int i=1;i<=n;i++){                   scanf("%d",&m);                   a[i]=m;         }   printf("整数序列的最大子段和是:\n");      maxsum=MaxSum(n,i,j);    printf("%d\n",maxsum);}
运行效果:


0 0
原创粉丝点击