Fork me on github

代码优化-提升性能浅剖析:筛选奇偶数

<?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];      
 
    }
}
posted @ 2015-09-25 15:55  Champion-水龙果  阅读(257)  评论(0编辑  收藏  举报
Champion-水龙果