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原理之错误抑制与内嵌HTML分析
May 02 PHP
解析ajax事件的调用顺序
Jun 17 PHP
神盾加密解密教程(三)PHP 神盾解密工具
Jun 08 PHP
PHP生成json和xml类型接口数据格式
May 17 PHP
php生成PDF格式文件并且加密
Jun 22 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
CI框架整合smarty步骤详解
May 19 PHP
php数值转换时间及时间转换数值用法示例
May 18 PHP
PHP单例模式模拟Java Bean实现方法示例
Dec 07 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
PHP中mysqli_get_server_version()的实例用法
Feb 03 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
全国FM电台频率大全 - 7 吉林省
2020/03/11 无线电
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
php中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
php树型类实例
2014/12/05 PHP
thinkPHP显示不出验证码的原因与解决方法分析
2017/05/20 PHP
PHP curl批处理及多请求并发实现方法分析
2018/08/15 PHP
js计算页面刷新的次数
2009/07/20 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
python在windows下实现ping操作并接收返回信息的方法
2015/03/20 Python
用Python编写一个简单的俄罗斯方块游戏的教程
2015/04/03 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
python关于倒排列的知识点总结
2020/10/13 Python
一个非常简单好用的Python图形界面库(PysimpleGUI)
2020/12/28 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
精彩的推荐信范文
2013/11/26 职场文书
运动会广播稿400字
2014/01/25 职场文书
科技之星事迹材料
2014/06/02 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
大学生实习证明
2015/06/16 职场文书
春节慰问简报
2015/07/21 职场文书