PHP常用算法
1 <?php 2 //二分法查找数组中的某个元素 3 function search($array,$k,$low = 0, $high = 0){ 4 if(count($array) != 0 && $high == 0){ 5 $high = count($array); 6 } 7 if($low <= $high){ 8 $mid = intval(($low + $high)/2); 9 if($array[$mid] == $k){ 10 return $mid; 11 }else if($array[$mid] < $k){ 12 return search($array,$k,$low = 0, $mid +1); 13 }else{ 14 return search($array,$k,$low = 0, $mid +1); 15 } 16 } 17 return '你找的元素不存在'; 18 } 19 20 //快速查找数组中的某个元素 21 function search($array,$k){ 22 $count = count($array); 23 24 for($i = 0;$i<= $count;$i++){ 25 if($array[$i] == $k){ 26 break; 27 } 28 } 29 30 if($i < $count) { 31 return $i; 32 }else{ 33 return '你找的元素不存在'; 34 } 35 } 36 37 //冒泡法查找数组中的某个元素 38 39 function search($array) { 40 $count = count($array); 41 42 for($i = 1;$i<$count;$i++) { 43 for($k = 0;$k<$count-1;$k++){ 44 if($array[$k+1] < $array[$k]); 45 $tmp = $array[$k+1]; 46 $array[$k+1] = $array[$k]; 47 $array[$k] = $tmp 48 } 49 } 50 } 51 52 //快速排序法 53 54 function quick($array){ 55 $count = count($array); 56 $base_num = $array[0]; 57 $left_num = []; 58 $right_num = []; 59 for($i = 1;$i<$count;$i++){ 60 if($array[$i]<$base_num){ 61 $left_num[] = $array[$i]; 62 }else{ 63 $right[] = $array[$i]; 64 } 65 } 66 $left_num = qucik($left_num);//递归处理 67 $right_num = quick($right_num);//递归处理 68 $array = array_merge($left_num,array($base_num),$right_num); 69 return $array 70 } 71 ?>