
/*快速排序法*/
function quick_sort($arr){ $n=count($arr); if($n<=1) return $arr; $key=$arr[0]; $left_arr=$right_arr=array(); for($i=1;$i<$n;$i++){ if($arr[$i]<$key)//从小到大排序 $left_arr[]=$arr[$i]; else $right_arr[]=$arr[$i]; } $left_arr=quick_sort($left_arr); $right_arr=quick_sort($right_arr); return array_merge($left_arr,array($key),$right_arr); }
/*冒泡排序法*/
function popo($arr){ $n=count($arr); if($n<=1) return $arr; for ($i=0;$i<$n;$i++){ for($j=$i+1;$j<$n;$j++){ if($arr[$i]<$arr[$j]){//从大到小排序 $tmp=$arr[$j]; $arr[$j]=$arr[$i]; $arr[$i]=$tmp; } } } return $arr; }
/*二分查找法*/
function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = intval(($low+$high)/2 ); //echo $low.",".$high.",".$mid.'</br>'; if ($array[$mid] == $k){ return $mid; }elseif ( $k < $array[$mid]){ return bin_sch($array, $low, $mid-1, $k); }else{ return bin_sch($array, $mid+ 1, $high, $k); } } return -1; }
文章来源: php基础算法
人吐槽 | 人点赞 |
发表评论