/** * Search_Seq($arr,$elem):顺序查找 * Search_Seq2($arr,$elem):顺序查找(优化) * Search_bin($arr,$elem):二分查找 * SearchBST($elem):二叉搜索 */class Search{    public $arr;    function __construct($arr)    {        $this->arr = $arr;    }    /**     * 顺序查找     * @param $arr  在$arr数组中查找     * @param $elem 查找数组中是否有存在元素$elem,有则返回在数组中的位置;没有则返回0     */    public static function Search_Seq($arr,$elem){        for($i=0;$i
$arr[$mid]){                $low=$mid+1;            }else{                return $mid;            }        }        return 0;    }    /**     * 二叉排序树     * @param $elem     * @return int     */    public function SearchBST($elem){       return $this->find($this->arr[0],$elem,0);    }    private function find($root,$elem,$i){        if($i>count($this->arr) || !$root){            return 'Error';        }        if($elem==$root){            return $i;        }        if($elem<$root && $i*2+1
arr)){            return  $this->find($this->arr[$i*2+1],$elem,$i*2+1);        }else if($elem>$root && $i*2+2
arr)){            return  $this->find($this->arr[$i*2+2],$elem,$i*2+2);        }        return 0;    }}