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 和 XML: 使用expat函数(三)
Oct 09 PHP
使用PHP遍历文件夹与子目录的函数代码
Sep 26 PHP
php一行代码获取文件后缀名实例分析
Nov 12 PHP
php从文件夹随机读取文件的方法
Jun 01 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
Zend Framework教程之Zend_Layout布局助手详解
Mar 04 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
May 05 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
PHP自定义函数实现assign()数组分配到模板及extract()变量分配到模板功能示例
May 23 PHP
Laravel框架自定义分页样式操作示例
Jan 26 PHP
php中数组最简单的使用方法
Dec 27 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
PHP语言中global和$GLOBALS[]的分析 之二
2012/02/02 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
round robin权重轮循算法php实现代码
2016/05/28 PHP
Extjs TriggerField在弹出窗口显示不出问题的解决方法
2010/01/08 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
基于Vue实现可以拖拽的树形表格实例详解
2018/10/18 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python如何import文件夹下的文件(实现方法)
2017/01/24 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python 重定向获取真实url的方法
2018/05/11 Python
详解Python logging调用Logger.info方法的处理过程
2019/02/12 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
工商学院毕业生个人自我评价
2013/09/19 职场文书
高中毕业自我鉴定范文
2013/10/02 职场文书
餐厅总经理岗位职责
2013/12/31 职场文书
2014年办公室个人工作总结
2014/11/12 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
python如何做代码性能分析
2021/04/26 Python
为了顺利买到演唱会的票用Python制作了自动抢票的脚本
2021/10/16 Python
nginx容器方式反向代理实战
2022/04/18 Servers