<?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){
foreach ($data as $v) $optimize[$v%2][] = $v;
return $optimize[$is_odd];
}
}