php基础查找算法
2020-12-13 03:40
标签:als 二分 二分法 echo 算法 turn bin bsp php基础 1、顺序查找 2、二分法查找 php基础查找算法 标签:als 二分 二分法 echo 算法 turn bin bsp php基础 原文地址:https://www.cnblogs.com/wawjandcsws/p/11081513.html 1 function line_search($array,$tar)
2 {
3 if(!is_array($array) || count($array) return false;
4 for($i=0;$icount($array);$i++){
5 if($array[$i] == $tar){
6 return $i;
7 }
8 }
9 return false;
10 }
11
12 line_search($arr,34);
1 // 非递归
2 function binary_search($array,$tar)
3 {
4 if(!is_array($array) || count($array) 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) 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."";
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);
上一篇:duplicate symbol _jk_collectionClassLoadTimeInitialization in:...../Objects-normal/armv7/JSONKit.o