PHP求最大子序列和的算法实现


Posted in PHP onJune 24, 2011
<?php 
//作者:遥远的期待 
//QQ:15624575 
//算法分析:1、必须是整数序列、2、如果整个序列不全是负数,最大子序列的第一项必须是正数,否则最大子序列后面的数加起来再加上第一项的负数,其和肯定不是最大的;3、如果整个序列都是负数,那么最大子序列的和是0; 
//全负数序列很简单,不举例 
$arr=array(4,-3,5,-2,-1,2,6,-2); 
function getmaxsum($arr){ 
$thissum=0; 
$maxsum=0; 
$start=0;//记录子序列的起始下标 
$end=0;//记录子序列的结束下标 
for($i=0;$i<count($arr);$i++){ 
$thissum+=$arr[$i];//取得当前子序列的和 
if($thissum>$maxsum){//如果当前子序列的和大于当前最大子序列的和 
$maxsum=$thissum;//改变当前最大子序列的和 
$end=$i; 
}else if($thissum<0){//如果当前子序列的和小于0,则把下一个元素值假定为最大子序列的第一项,这里可以保证最大自序列的第一项一定是正数 
$thissum=0;//前提这个序列不全是负数 
$start=$i+1; 
} 
} 
$parr=array($start,$end,$maxsum); 
return $parr; 
} 
list($start,$end,$maxsum)=getmaxsum($arr); 
echo '最大子序列是:'; 
for($i=$start;$i<=$end;$i++){ 
echo $arr[$i].' '; 
} 
echo '<br>'; 
echo '最大子序列的和是'.$maxsum; 
?>
PHP 相关文章推荐
PHP与C#分别格式化文件大小的代码
May 14 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
如何用php获取程序执行的时间
Jun 09 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
php创建sprite
Feb 11 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
Feb 26 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
PHP执行linux命令6个函数代码实例
Nov 24 PHP
php中转义mysql语句的实现代码
Jun 24 #PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
Jun 24 #PHP
php中对2个数组相加的函数
Jun 24 #PHP
php判断输入不超过mysql的varchar字段的长度范围
Jun 24 #PHP
PHP array操作10个小技巧分享
Jun 23 #PHP
php 缩略图实现函数代码
Jun 23 #PHP
php中随机显示图片的函数代码
Jun 23 #PHP
You might like
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
PHP运行模式的深入理解
2013/06/03 PHP
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
JQuery入门——事件切换之hover()方法应用介绍
2013/02/05 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
bootstrap datetimepicker2.3.11时间插件使用
2016/11/19 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
通过实例解析vuejs如何实现调试代码
2020/07/16 Javascript
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python 常用的基础函数
2018/07/10 Python
新建文件时Pycharm中自动设置头部模板信息的方法
2020/04/17 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
详解anaconda安装步骤
2020/11/23 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
班队活动设计方案
2014/01/30 职场文书
仓管员岗位责任制
2014/02/19 职场文书
我爱幼儿园演讲稿
2014/09/11 职场文书
异地年检委托书范本
2014/09/24 职场文书
关于分班的感言
2015/08/04 职场文书
运动会广播稿300字
2015/08/19 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
Redis分布式锁的7种实现
2022/04/01 Redis