class search
{
// ソース配列を検索
private $array = array(1,2,3,5,7,6,4,8);
/**
* 逐次検索方法
* @param $val 探したい値
*/
public function query_search ( $val)
{
foreach ($this->array as $k => $v)
{
if($v == $val)
{
echo '順次検索成功!';
exit( 0 );
}
}
echo '順次検索に失敗しました!';
}
/**
* 二分探索法
* @param $val 求めたい値
*/
public function bin_search($val)
{
sort($this->array)
$min = 0;
$max = count($this->array);
for ($i = $min; $i < $max; $i++)
{
$mid = ceil(( $ min + $max) / 2);
if($val == $this->array[$mid])
{
echo '二分探索成功!';
exit(0);
}
else if ($val < $this->array[$mid])
{
$max = $mid;
}
else if($val > $this->array[$mid])
{
$ min = $mid;
}
}
echo '二分探索に失敗しました!';
}
}