復制代碼 代碼如下:
<?php
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 '二分查找失敗!';
 }
}
新聞熱點
疑難解答