对于一个半路出家的IT工作者,数据结构与算法处于一种严重的先天不足状态。 今天简单的研究了一下最常用的冒泡法排序与二分法查找,写了一个简单的案例,加强自己对php的学习,也希望对今后php学习者能提供一点点的帮助。

http://www.homatraining.com/?do-my-papers //冒泡法排序 //随便给出一个乱序数组 $arr = array(0,2,10,9,19,23,89,112,321,234); //统计数组 $num = count($arr); //冒泡倒序排列 for($i=0;$i<$num-1;$i++){ for($m=0;$m<$num-1;$m++){ if($arr[$m]<$arr[$m+1]){ $temp = $arr[$m]; $arr[$m] = $arr[$m+1]; $arr[$m+1] = $temp; } // echo $arr[$m].'<br>'; } } //输出排序后的结果 var_dump($arr); //冒泡顺序排列 for($x=0;$x<$num-1;$x++){ for($y=0;$y<$num-1;$y++){ if($arr[$y]>$arr[$y+1]){ $temp = $arr[$y]; $arr[$y] = $arr[$y+1]; $arr[$y+1] = $temp; } } } //输出排序后的结果 var_dump($arr); //二分法查找 function dichotomy($array,$k,$low=0,$high=0){ if(count($array)!= 0 && $high == 0){ $high = count($array); } if($low <= $high){ $mid = intval(($low+$high)/2); if( $array[$mid] == $k ){ return $mid; }elseif( $k<$array[$mid]){ return dichotomy( $array,$k,$low=0,$mid-1); }else{ return dichotomy( $array,$k,$mid+1,$high); } }else{ return false; } } //输出查找结果 echo dichotomy($arr,23);

这里只是给出一个简单的案例,便于大家在php学习的过程中有个参考,更多有关冒泡法与二分法的内容,百度一下,你就知道!!!

watch
【技术交流,欢迎大家拍砖】

还没有评论哦!