php data structure and algorithm of PHP description search and binary search

  • 2020-05-19 04:18:40
  • OfStack

 
<?php 
/** 
*  To find the  
* 
**/ 
//  In order to find  
function normal_search($arrData,$val) { 
$len = count($arrData); 
if($len == 0) return -1; 
for($i = 0;$i < $len; $i++ ) { 
echo "find No.",$i + 1," value = ",$arrData[$i]," is = ",$val,"? <br/>"; 
//  To find the  
if($arrData[$i] == $val) return $i; 
} 
return -1; 
} 

//  Test sequence lookup  
$arrData = array(4,51,6,73,2,5,9,33,50,3,4,6,1,4,67); 
echo normal_search($arrData,6),"<br/>"; 
echo normal_search($arrData,66),"<br/>"; 

// 2 Points method lookup ( Search for ordered columns ) 
function binary_search($arrData,$val) { 
$len = count($arrData); 
if($len == 0) return -1; 

$start = 0; 
$end = $len - 1; 

while($start <= $end) { 
$middle = intval(($start + $end)/2); 
echo "start = ",$start," end = ",$end," middle = ",$middle,"<br/>"; 
if($arrData[$middle] == $val) { 
return $middle; 
} elseif ($arrData[$middle] > $val) { 
$end = $middle - 1 ; 
} elseif ($arrData[$middle] < $val) { 
$start = $middle + 1; 
} 
} 
return -1; 
} 

//  test 1 Under the 2 Points method lookup  
$arrData = array(1,2,3,4,5,7,8,9,11,23,56,100,104,578,1000); 
echo binary_search($arrData,578),"<br/>"; 
echo binary_search($arrData,66),"<br/>"; 

Related articles: