首页 > 其他 > 详细

最大子段和几种算法

时间:2014-04-09 01:22:13      阅读:618      评论:0      收藏:0      [点我收藏+]
////最大子段和
//#include<iostream>
//using namespace std;
//int sum=0;
//int submid(int n,int x[100])
//{
//    int ttti,tttj;
//    for(int i=0;i<n;i++)
//    {
//        int ttt=0;
//        for(int j=i;j<n;j++)
//        {
//            ttt+=x[j];
//            if(ttt>sum)
//            {
//                sum=ttt;
//                ttti=i;tttj=j;
//            }
//        }
//    }
//    return sum;
//} 
//int main()
//{
//    int n;
//    int x[100];
//    while(cin>>n)
//    {
//        for(int i=0;i<n;i++)
//        {
//            cin>>x[i];
//        }
//        cout<<submid(n,x)<<endl;
//    }
//    
//} 
////#include<iostream>
////using namespace std;
////int maxsubsum(int *x,int left,int right)
////{
////    int sum=0;
////    if(left==right)
////    {
////        sum=x[left]>0?x[left]:0;
////    } 
////    else 
////    {
////        int centre=(left+right)/2;
////        int leftsum=maxsubsum(x,left,centre);
////        int rightsum=maxsubsum(x,centre+1,right);
////        int s1=0;
////        int lefts=0;
////        for(int i=centre;i>=left;i--)
////        {
////            lefts+=x[i];
////            if(lefts>s1)
////            s1=lefts; 
////        }
////        int s2=0;
////        int rights=0;
////        for(int i=centre+1;i<=right;i++)
////        {
////            rights+=x[i];
////            if(rights>s2)
////            s2=rights;
////        }
////        sum=s1+s2;
////        if(sum<leftsum)sum=leftsum;
////        if(sum<rightsum)sum=rightsum;
////    }
////    return sum;
////}
////int maxsum(int n,int *x)
////{
////    return maxsubsum(x,1,n);
////}
////int main()
////{
////    int n;
////    int x[100];
////    while(cin>>n)
////    {
////        for(int i=1;i<=n;i++)
////        {
////            cin>>x[i];
////        }
////        cout<<maxsum(n,x)<<endl;
////    }
////    
////}
//最大子段和动态规划
//#include<iostream>
//using namespace std;
//int maxsum(int n,int *x)
//{
//    int sum=0,b=0;
//    for(int i=1;i<=n;i++)
//    {
//        if(b>0)b+=x[i];
//        else b=x[i];
//        if(b>sum)sum=b;
//    }
//    return sum;
//}
//int main()
//{
//    int n;
//    int x[100];
//    while(cin>>n)
//    {
//        for(int i=1;i<=n;i++)
//        {
//            cin>>x[i];
//        }
//        cout<<maxsum(n,x)<<endl;
//    }
//}

最大子段和几种算法,布布扣,bubuko.com

最大子段和几种算法

原文:http://blog.csdn.net/u013240812/article/details/23203371

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!