php顺序查找和二分查找示例

  

复制代码 代码如下:

  <?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 '二分查找失败!';

  }

  }