php和python怎么求解最大子序列和-创新互联

本篇内容主要讲解“php和python怎么求解大子序列和”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php和python怎么求解大子序列和”吧!

为山东等地区用户提供了全套网页设计制作服务,及山东网站建设行业解决方案。主营业务为做网站、成都做网站、山东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

算法是为求解一个问题需要遵循的、被清楚地指定的简单的指令的集合。对于一个问题,一旦给定某种算法并且确定是正确的,那么重要的一步是确定该算法将需要多少诸如时间和空间的问题,也就是要分析该算法的时间复杂度和空间复杂度,时间复杂度低和空间复杂度低就代表该算法是好的,但我们要努力找到最优的算法。下面来看看大子序列和问题的最优求解算法,用php实现了

function maxSubSum($arr) {
    $maxSum = $sum = $leftIndex = $rightIndex = 0;
    $flag   = false;
    foreach ($arr as $key=>$value) {
        $sum += $value;
        if ($sum > $maxSum) {
            $maxSum = $sum;
            if($flag) {
                $leftIndex = $key;
                $flag   = false;
            }
            $rightIndex = $key;
        }

        if($sum <0) {
            $sum = 0;
            $maxSum = 0;
            $flag = true;
        }
    }
    return array_slice($arr,$leftIndex,($rightIndex - $leftIndex)+1);
}

再来看看python实现

#!/usr/bin/python

def findMaxSubArray( inputList ):
    if ( len( inputList ) == 0 ):
        return inputList
    
    middle = len( inputList ) / 2
    leftSum,rightSum,crossingSum,tmpSum = 0,0,0,0
    leftIndex,rightIndex = 0,len(inputList)
    
    leftSum = sum(inputList[0:middle])
    rightSum = sum(inputList[middle+1:])
    tmpIndex = middle -1
    while ( tmpIndex >0):
        tmpSum +=inputList[tmpIndex]
        if(tmpSum > leftSum):
            leftIndex = tmpIndex
            break;
        tmpIndex = tmpIndex - 1

    tmpIndex = middle+1
    while (tmpIndex < len( inputList )):
        tmpSum += inputList[tmpIndex]
        if( tmpSum > rightSum ):
            rightIndex = tmpIndex
            break;
        tmpIndex = tmpIndex + 1
    return inputList[leftIndex:rightIndex]

if __name__ == '__main__':
    inputList = [-1,-2,-4,-8,-3,-10,-13,-56,-33,-2,-4,-45,-55,-12,-3]
    #inputList = [1,2,-4,8,4,0,-10,3,56,33,2,4,-45,55,0,-12,3]
    print findMaxSubArray ( inputList )

到此,相信大家对“php和python怎么求解大子序列和”有了更深的了解,不妨来实际操作一番吧!这里是创新互联建站网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

分享标题:php和python怎么求解最大子序列和-创新互联
URL链接:https://www.cdcxhl.com/article22/ppijc.html

成都网站建设公司_创新互联,为您提供微信小程序营销型网站建设建站公司标签优化手机网站建设虚拟主机

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设