这篇文章主要介绍了php四种基本排序算法和两种查找算法示例,本文用一个实例讲解冒泡排序法、快速排序法、选择排序法、插入排序法的使用,需要的朋友可以参考下
本文汇总了常见的php排序算法和查找,,在进行算法设计的时候有不错的借鉴价值。现分享给大家供参考之用。具体如下:
$arr[$j+1]){$temp=$arr[$j];$arr[$j]=$arr[$j+1];$arr[$j+1]=$temp;$flag=true;}}if(!$flag){//已经是有序了break;}$flag=false; }}//php选择排序法 效率比冒泡要高function selectsort(&$arr){ $temp=0; for($i=0;$i$arr[$j]){$minval=$arr[$j];$minindex=$j;}}//最后交换$temp=$arr[$i];$arr[$i]=$arr[$minindex];$arr[$minindex]=$temp; }}//插入排序法(小到大排序) 效率又比 选择排序法要高一些function insertsort(&$arr){ //先默认下标为0的这个数已经是有序 for($i=1;$i= 0 && $insertval $pivot){$r--;}if($l>=$r){break;}$temp=$arr[$l];$arr[$l]=$arr[$r];$arr[$r]=$temp;if($arr[$l]==$pivot){--$r;}if($arr[$r]==$pivot){++$l;}}if($l==$r){$l++;$r--;}if($left$l) quicksort($l,$right,$arr);}/** * 快速排序方法 第二种实现方法 自己实现的 * php快速排序方法 * $order asc 小到大 desc大到小 默认是asc * $order 的值只能为 asc desc 如果乱写一个值也是按asc排序的 */function quicksort2($arr,$order = 'asc'){ if(count($arr) $val)$arr_right[] = $v;else$arr_left[] = $v; } }$arr_left = quicksort($arr_left,$order); $arr_right = quicksort($arr_right,$order);return array_merge($arr_left,array($val),$arr_right);}//下面是查找$arr=array(46,90,900,0,-1);//这是按顺序查询function search(&$arr,$findval){$flag=false; for($i=0;$i $arr[$middleindex]){binarysearch($arr,$findval,$middleindex+1,$rightindex);//如果小于中间数,则向前面找 }else if($findval
希望本文所述排序算法和查找算法实例对大家的php程序设计有所帮助。