<?php class a_test{ private $static_class; static function index(){ $data=range(0,100000); $begin=debug::set_flag(); //开启debug调试点 $odd=self::optimization($data,true); $end=debug::set_flag(); //结束debug调试点 out(debug::used($begin,$end),1,1); // [origin] // [0] => 0.101s // [1] => 20801.063kb // [2] => 91326.813kb // [optimization] // [0] => 0.086s // [1] => 20800.875kb // [2] => 132924.938kb } //原始算法 static function origin($data,$is_odd=false){ $result=null; for ($i=0; $i < count($data); ++$i) { if ($data[$i]%2 == 0) { if (!$is_odd) { $result[]=$data[$i]; } } else { if ($is_odd) { $result[]=$data[$i]; } } } return $result; } //优化算法 static function optimization($data,$is_odd=false){ $odd=$even=null; $num=count($data); for ($i=0; $i < $num; ++$i) { if ($data[$i]%2 == 0) { $even[]=$data[$i]; } else { $odd[]=$data[$i]; } } return $is_odd ? $odd : $even; } //最佳算法 static function best($data,$is_odd=false){ //TODO 期待你的最佳算法 } }
开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»
foreach($data as $v) $d[$v%2][]=$v;
return $d[$is_odd];
}
两行就搞定了吧 .....
引用来自“酒逍遥”的评论
static function best($data,$is_odd=false){foreach($data as $v) $d[$v%2][]=$v;
return $d[$is_odd];
}
两行就搞定了吧 .....
赞:巧用取模方法,秒哉、高哉! notice: 1、优化的含义不是减少代码,不过减少代码确实可以减少“阅读压力”。 2、如果$data不是数组,后果你知道…… 3、传说中的foreach比for快,有些时候并不一定; 4、不提倡省去{}; 5、$d的命名不赞成。
引用来自“酒逍遥”的评论
static function best($data,$is_odd=false){foreach($data as $v) $d[$v%2][]=$v;
return $d[$is_odd];
}
两行就搞定了吧 .....
引用来自“art_youth-web”的评论
赞:巧用取模方法,秒哉、高哉! notice: 1、优化的含义不是减少代码,不过减少代码确实可以减少“阅读压力”。 2、如果$data不是数组,后果你知道…… 3、传说中的foreach比for快,有些时候并不一定; 4、不提倡省去{}; 5、$d的命名不赞成。