php基础查找算法

Posted wawjandcsws

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php基础查找算法相关的知识,希望对你有一定的参考价值。

1、顺序查找

 

 1 function line_search($array,$tar)
 2 
 3     if(!is_array($array) || count($array) < 1) return false;
 4     for($i=0;$i<count($array);$i++)
 5         if($array[$i] == $tar)
 6             return $i;
 7         
 8     
 9     return false;
10 
11 
12 line_search($arr,34);

2、二分法查找

 1 // 非递归
 2 function binary_search($array,$tar)
 3 
 4     if(!is_array($array) || count($array) < 1) return false;
 5         // 数组必须排序
 6     sort($array);
 7     $high = count($array) - 1;
 8     $low = 0;
 9     while($low <= $high)
10         $middle = intval(($high + $low) / 2);
11         if($array[$middle] > $tar)
12             $high = $middle - 1;
13         elseif($array[$middle] < $tar)
14             $low = $middle + 1;
15         else
16             return $middle; 
17         
18     
19     return false;
20 
21 
22 binary_search($arr,165.4);

 

 1 // 递归
 2 function binary_search($array,$tar,$high=0,$low=0)
 3 
 4     if(!is_array($array) || count($array) < 1) return false;
 5     sort($array);
 6     if($low <= $high)
 7         $middle = intval(($high + $low) / 2);
 8         if($array[$middle] > $tar)
 9             $high = $middle - 1;
10             echo $high."</br>";
11             return binary_search($array,$tar,$high,$low);
12         elseif($array[$middle] < $tar)
13             $low = $middle + 1;
14             return binary_search($array,$tar,$high,$low);
15         else
16             return $middle; 
17         
18     
19     return false;
20 
21 
22 binary_search($arr,125,count($arr),0);

 

以上是关于php基础查找算法的主要内容,如果未能解决你的问题,请参考以下文章

PHP查找算法

PHP实现二分查找算法(代码详解)

常见查找算法之php, js,python版

基础算法-二分查找

算法:二分查找(基础)

PHP数组的二分查找算法