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之第八天
Oct 09 PHP
彻底杜绝PHP的session cookie错误
Aug 09 PHP
PHP操作文件的一些基本函数使用示例
Nov 18 PHP
php实现图片缩略图的方法
Mar 29 PHP
CI框架支持$_GET的两种实现方法
May 18 PHP
PHP常用的三种设计模式汇总
Aug 28 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
thinkPHP分页功能实例详解
May 05 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
php生出随机字符串
Jul 06 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
Jan 21 PHP
PHP通过curl获取接口URL的数据方法
May 31 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
php连接mssql数据库的几种方法
2013/02/21 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
vuejs实现本地数据的筛选分页功能思路详解
2017/11/15 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
仿淘宝JSsearch搜索下拉深度用法
2018/01/15 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
Python调用C语言开发的共享库方法实例
2015/03/18 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
tensorflow 动态获取 BatchSzie 的大小实例
2020/06/30 Python
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
如何让Java程序执行效率更高
2014/06/25 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
医生党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
管理失职检讨书范文
2015/05/05 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
PyTorch 如何自动计算梯度
2021/05/23 Python
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
MySQL深分页问题解决思路
2022/12/24 MySQL